Android-Thread線程的狀態


介紹Thread線程的狀態之前,必須要講解CPU執行線程的隨機性:

 例如:有五個線程,CPU中央處理器,在執行這五個線程的時候,有可能先執行Thread-0,有可能先執行Thread-3,等等,都有可能

                                 有可能執行到Thread-2 執行了一半,然后又去執行Thread-1了,等等,都有可能

                              ....

意思就是:Thread-0/Thread-1/Thread-2/Thread-3,都已經.start();了,那Thread-0/Thread-1/Thread-2/Thread-3 都有CPU執行資格,但是這些線程CPU執行權不一定有。

 

最簡單的Thread運行狀態:

 

完整的Thread運行狀態:

1.當start(); 后有可能馬上就是運行狀態(具備CPU執行權),也有可能是臨時阻塞狀態(不具備CPU執行權)

2.例如:有兩個線程 Thread-0 / Thread-1 / Thread-2,當Thread-1被CPU執行(代表具備CPU執行權) 這個時候Thread-0/Thread-2(臨時阻塞狀態 不具備CPU執行權)

3.線程的結束,在之前早期的Java版本,是可以.stop(); 結束線程的,但是這種方式Java的設計者們認為不安全,所以被過時了,目前結束線程的方式是 run方法執行結束就代表線程結束

4.關於凍結狀態:sleep(5000) 就會凍結5秒,凍結的時候,沒有CPU執行資格 更沒有CPU執行權,5秒過后就有可能回到臨時阻塞狀態,也有可能回到運行狀態

5.關於凍結狀態:wait();后 會一直處於凍結狀態,自己沒法回到 運行狀態/臨時阻塞狀態,需要調用notify(); ,       注意:還有一個方法 notifyAll(); 喚醒全部

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM