首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

线程中调用wait步骤和sleep方法,很简单,都进来看看

2013-12-26 
线程中调用wait方法和sleep方法,很简单,都进来看看我刚才在网上搜“wait和sleep的区别”时 发现普遍的帖子都

线程中调用wait方法和sleep方法,很简单,都进来看看
我刚才在网上搜“wait和sleep的区别”时 发现普遍的帖子都回答道
“sleep必须捕获异常,而wait,notify和notifyAll不需要捕获异常。”


但我仔细翻了翻API,发现调用wait方法是需要捕获异常的,而且是与调用sleep方法捕获的异常一样。
这怎么解释呢? 难道是我的API手册出错了,还是网上回答的人脑子都进水了?


线程中调用wait步骤和sleep方法,很简单,都进来看看

看! API上写的跟网上普遍回答的答案不一样~
[解决办法]


精辟啊
[解决办法]


wait后在等待池阻塞,被其它线程通知后进入对象的锁池阻塞。应该是这样吧~
然后呢,等唤醒它的那个线程释放出对象锁后,在锁池阻塞的线程会进入Runnable(可运行)状态,与其它可运行状态的线程一起竞争CPU资源。
惭愧了,确实有点错误。

正确的流程应该是,调用wait方法后,进入阻塞对象的等待池等待。
当有notify,notifyAll方法在此对象上调用时,阻塞线程会从阻塞对象的等待池到锁池等待获取锁并进入到可运行状态(Runnable)。

对我的错误表示歉意。

热点排行