lockObj.wait()是否会打破锁,打破原子性?
我加了些注释,观察了下。wait的线程在收到notifyAll时,没有重新竞争锁,而是从wait()后开始执行的。那么,严格来讲,是否存在多个线程会同时执行后面代码的可能?
【本例不会出现是因为每次转移只转移给了一个节点,如果转移给两个节点或以上。则可能在wait后,同时有两个节点满足条件,则会出现竞争的情况。】
我加了些注释,观察了下。wait的线程在收到notifyAll时,没有重新竞争锁,而是从wait()后开始执行的。那么,严格来讲,是否存在多个线程会同时执行后面代码的可能?
【本例不会出现是因为每次转移只转移给了一个节点,如果转移给两个节点或以上。则可能在wait后,同时有两个节点满足条件,则会出现竞争的情况。】
2015-12-09
举报