日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 线程状态

發布時間:2024/9/30 java 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 线程状态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

線程狀態:
????一個線程可處于以下四種狀態之一:
??????1. 新建(new):當線程被創建時,它只會短暫的處于這種狀態。此時它已經分配了必需的系統資源,并執行了初始化。此刻線程已經有資格獲得CPU 時間了,之后調度器會把這個線程轉變為運行狀態或阻塞狀態。
??????2. 就緒(Runnable):在這種狀態下,只要調度器把時間片分配給線程,線程就可以執行。也就是說,在任意時刻,線程可以運行也可以不運行。只要調度器能分配時間片給線程,它就可以運行,這不同于死亡和阻塞狀態。
??????3. 阻塞(Blocked):線程能夠運行,但有某個條件阻止它運行。當線程處于阻塞狀態時,調度器會忽略此線程,不會分配給線程任何CPU 時間。直到線程重新進入了就緒狀態,它才可能執行操作。
??????4. 死亡 (Dead):處于死亡或者終止狀態的線程將不再是可調度的,并且再也不會得到CPU 時間,它的任務已經結束,或者不再是可運行的。線程死亡的通常方式是從run() 方法返回,但是線程任務還可以被中斷。

阻塞狀態:
????一個任務進入租的狀態可能有以下幾種原因:
??????1. 通過調用sleep(time) 使任務就如休眠狀態,在這種狀態下,任務在指定的時間內不會運行。
??????2. 通過調用await() 使線程掛起。直到線程得到了notify() 或notifyAll() 消息(在Java SE5 的java.util.concurrent 類庫中等價的signal() 或signalAll() 消息),線程就會進入就緒狀態。
??????3. 在任務中等待某個輸入/輸出完成。
??????4. 任務試圖在某個對象上調用其它同步控制方法,但是對象鎖不可用,因為另一個任務已經獲得了這個鎖。
??????在比較早的代碼中可能還會看到suspend() 和resume() 來阻塞和喚醒線程,隨著Java 版本的更新,這些方法已經被廢棄了(因為這可能導致死鎖),stop() 方法也已經被廢棄了,因為它不會釋放線程的鎖。

線程中斷:來源處理 InterruptedException,作者:Brian Goetz ,感謝!
??????每個線程都有一個與之相關聯的 Boolean 屬性,用于表示線程的中斷狀態(interrupted status)。中斷狀態初始時為 false;當另一個線程通過調用 Thread.interrupt() 中斷一個線程時,會出現以下兩種情況之一。如果那個線程在執行一個低級可中斷阻塞方法,例如 Thread.sleep()、 Thread.join() 或 Object.wait(),那么它將取消阻塞并拋出 InterruptedException。否則, interrupt() 只是設置線程的中斷狀態。 在被中斷線程中運行的代碼以后可以輪詢中斷狀態,看看它是否被請求停止正在做的事情。中斷狀態可以通過 Thread.isInterrupted() 來讀取,并且可以通過一個名為 Thread.interrupted() 的操作讀取和清除。
??????中斷是一種協作機制。當一個線程中斷另一個線程時,被中斷的線程不一定要立即停止正在做的事情。相反,中斷是禮貌地請求另一個線程在它愿意并且方便的時候停止它正在做的事情。有些方法,例如 Thread.sleep(),很認真地對待這樣的請求,但每個方法不是一定要對中斷作出響應。對于中斷請求,不阻塞但是仍然要花較長時間執行的方法可以輪詢中斷狀態,并在被中斷的時候提前返回。 您可以隨意忽略中斷請求,但是這樣做的話會影響響應。
??????中斷的協作特性所帶來的一個好處是,它為安全地構造可取消活動提供更大的靈活性。我們很少希望一個活動立即停止;如果活動在正在進行更新的時候被取消,那么程序數據結構可能處于不一致狀態。中斷允許一個可取消活動來清理正在進行的工作,恢復不變量,通知其他活動它要被取消,然后才終止。

????????????????????????????????????????????????????????????????????????????????????????????????????????????參考書籍:
????????????????????????????????????????????????????????????????????????????????????????????????????????????????《Java 編程思想》Bruce Eckel 著 陳昊鵬 譯

總結

以上是生活随笔為你收集整理的Java 线程状态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。