氟塑料離心泵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 你爸是李剛 閱讀(1567) 評論(1)  編輯  收藏

          評論

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

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


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


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

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術網站

          行業網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          站長網 氟塑料離心泵 注塑機 液晶廣告機
          主站蜘蛛池模板: 高台县| 蛟河市| 新宾| 新余市| 博兴县| 白山市| 许昌县| 根河市| 双牌县| 克拉玛依市| 台湾省| 武义县| 衡阳市| 临夏县| 侯马市| 象山县| 上栗县| 白山市| 石家庄市| 彰武县| 杭锦旗| 定州市| 饶阳县| 敦煌市| 新蔡县| 东阿县| 广平县| 札达县| 新田县| 淅川县| 南宫市| 佛山市| 黑河市| 临湘市| 呼图壁县| 临洮县| 梅河口市| 萨迦县| 清徐县| 洪泽县| 东安县|