线程wait()和sleep()的区别
生活随笔
收集整理的這篇文章主要介紹了
线程wait()和sleep()的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這兩者的施加者是有本質區別的.
sleep()是讓某個線程暫停運行一段時間,其控制范圍是由當前線程決定,也就是說,在線程里面決定.好比如說,我要做的事情是 "點火->燒水->煮面",而當我點完火之后我不立即燒水,我要休息一段時間再燒.對于運行的主動權是由我的流程來控制.而wait(),首先,這是由某個確定的對象來調用的,將這個對象理解成一個傳話的人,當這個人在某個線程里面說"暫停!",也是thisOBJ.wait(),這里的暫停是阻塞,還是"點火->燒水->煮飯",thisOBJ就好比一個監督我的人站在我旁邊,本來該線程應該執行1后執行2,再執行3,而在2處被那個對象喊暫停,那么我就會一直等在這里而不執行3,但正個流程并沒有結束,我一直想去煮飯,但還沒被允許,直到那個對象在某個地方說"通知暫停的線程啟動!",也就是thisOBJ.notify()的時候,那么我就可以煮飯了,這個被暫停的線程就會從暫停處繼續執行.其實兩者都可以讓線程暫停一段時間,但是本質的區別是一個線程的運行狀態控制,一個是線程之間的通訊的問題
=============================================================================================
=============================================================================================
總結
以上是生活随笔為你收集整理的线程wait()和sleep()的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vivos7e的返回键在哪里 可以这样设
- 下一篇: 20万贷款10年每月还多少