while 的情况 譬如 while(p=null){}
然后在另一个地方 p 赋值为非 null
用锁阻塞
synchronized(obj){ obj.wait(); }
然后在另一个地方 obj.notify();
1
siriussilen 2017-04-02 17:38:36 +08:00
当然是忙等待啦~~~
|
2
izhaohui 2017-04-02 18:02:18 +08:00 via Android
锁是会让出 cpu 资源的
|
3
hjc4869 2017-04-02 18:04:27 +08:00 via Android
楼主可以了解一下自旋锁以及其应用场景
|
4
kaneg 2017-04-02 18:10:55 +08:00 via iPhone
简单的说, while 循环的线程是一直处于运行状态,而 wait 则是阻塞状态,即让出 CPU 时间片。
|
6
kenken 2017-04-02 18:54:19 +08:00
你这个就是自旋锁和排他锁的区别。 自旋锁一般用在非常短的锁等待上,配合 cas 效率更高,上下文切换更少。排他锁用途广泛,需要上下文切换,效率肯定比自旋锁要低。 自旋锁占资源多
|
8
SoloCompany 2017-04-03 00:25:17 +08:00
我不小心点了一下楼主的问题列表。。。
|
9
wwqgtxx 2017-04-03 07:33:17 +08:00 via iPhone
@SoloCompany 然后发现我们俩貌似回复了他提的每个问题😂
|
10
sagaxu 2017-04-03 14:03:43 +08:00 via Android
@SoloCompany 我也看了下,楼主肯定不是计算机专业的😁
|