氟塑料離心泵www.buybeng.com

          jquery教程http://www.software8.co/wzjs/jquery/

          Java多線程中Sleep與Wait的區別

          Java中的多線程是一種搶占式的機制,而不是分時機制。搶占式的機制是有多個線程處于可運行狀態,但是只有一個線程在運行。

          共同點:

          1. 他們都是在多線程的環境下,都可以在程序的調用處阻塞指定的毫秒數,并返回。

          2. wait()和sleep()都可以通過interrupt()方法 打斷線程的暫停狀態 ,從而使線程立刻拋出InterruptedException。

             如果線程A希望立即結束線程B,則可以對線程B對應的Thread實例調用interrupt方法。如果此刻線程B正在wait/sleep/join,則線程B會立刻拋出InterruptedException,在catch() {} 中直接return即可安全地結束線程。

             需要注意的是,InterruptedException是線程自己從內部拋出的,并不是interrupt()方法拋出的。對某一線程調用 interrupt()時,如果該線程正在執行普通的代碼,那么該線程根本就不會拋出InterruptedException。但是,一旦該線程進入到 wait()/sleep()/join()后,就會立刻拋出InterruptedException 。

          不同點:

          1. Thread類的方法:sleep(),yield()等

            Object的方法:wait()和notify()等

          2. 每個對象都有一個鎖來控制同步訪問。Synchronized關鍵字可以和對象的鎖交互,來實現線程的同步。

            sleep方法沒有釋放鎖,而wait方法釋放了鎖,使得其他線程可以使用同步控制塊或者方法。

          3. wait,notify和notifyAll只能在同步控制方法或者同步控制塊里面使用,而sleep可以在任何地方使用

          4. sleep必須捕獲異常,而wait,notify和notifyAll不需要捕獲異常  

          線程的調度

              線程調度器按線程的優先級高低選擇高優先級線程(進入運行中狀態)執行,同時線程調度是搶先式調度,即如果在當前線程執行過程中,一個更高優先級的線程進入可運行狀態,則這個線程立即被調度執行。

          搶先式調度又分為:時間片方式和獨占方式。在時間片方式下,當前活動線程執行完當前時間片后,如果有其他處于就緒狀態的相同優先級的線程,系統會將執行權交給其他就緒態的同優先級線程;當前活動線程轉入等待執行隊列,等待下一個時間片的調度。

          在獨占方式下,當前活動線程一旦獲得執行權,將一直執行下去,直到執行完畢或由于某種原因主動放棄CPU,或者是有一高優先級的線程處于就緒狀態。

          舉例說明

                  首先我想說的是:在多線程編程中,經常會使用sleep與wait操作,我們理解sleep與wait的最大區別是sleep等待是不會釋放當前鎖,而wait則反之。我今天想到一個現實例子來比較這兩者的區別。 
                  我以去火車站買票的例子來說明。我們去火車站買票,當站到售票窗口前要告訴售票員需要到哪里的票,什么時候發車的,售票員就通過電腦去給我們打印票,這個時候我們就得等待。如果我們用sleep模式,就得一直站在那里等,直到售票員給我們票;如果用wait模式,這個時候就離開我們所站的位置,后面的票友就可能站到我當前的位置(窗口前),我們要取票的話,就得重新排在隊伍后面去取票。

          posted on 2012-11-06 15:41 你爸是李剛 閱讀(1568) 評論(1)  編輯  收藏

          評論

          # re: Java多線程中Sleep與Wait的區別 2013-10-30 20:48 田西超

          樓主的例子很形象,小弟不才,補充一下:關于sleep模式,我們去買票的時候,售票員通過電腦打印票,但是(假設)打印票的時間較長,我們就需要等待,但是這個時候,售票員可以給后面的人售票,我們則站在一旁等候,票出來后我們便立馬取票。  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術網站

          行業網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          站長網 氟塑料離心泵 注塑機 液晶廣告機
          主站蜘蛛池模板: 京山县| 台前县| 龙口市| 镇赉县| 乐平市| 沁阳市| 台安县| 灵台县| 尤溪县| 凉山| 兖州市| 潞西市| 呼伦贝尔市| 沙湾县| 贵州省| 丹凤县| 宁武县| 新乐市| 曲阳县| 泰州市| 庄河市| 浮山县| 沙雅县| 榆林市| 澄城县| 西充县| 梓潼县| 慈溪市| 德清县| 祁连县| 罗江县| 曲沃县| 武山县| 泰顺县| 乳源| 休宁县| 密山市| 江永县| 花莲县| 庄河市| 蚌埠市|