本帖最后由 李然 于 2013-12-23 05:22 编辑
请问各位高手,sleep和wait的区别是不是这样的,如果在一个线程同步的代码块中,用sleep方法就是线程单纯等待,同步用到的锁线程不会交出,执行权也就不会交出,别的线程在当前线程未执行玩同步代码块前不会进入同步代码块。而如果使用wait方法,线程马上就会交出线程的锁,执行权也交出,别的线程马上就可以进入同步代码块。这样理解对不对?有一个问题,就是对于notify的唤醒机制,能不能这样理解,当线程线程池中有四个线程,进入的顺序是一,二,三,四。这次个线程也通用一个锁,一,二,三线程在wait中,如果在四线程中使用notify,那么唤醒的应该是线程一,因为一是最先进入wait状态的,notify会以进入这个队列的先后顺序去唤醒,这样理解有没有什么问题? |