小白如何理解多執行緒

2021-09-10 23:43:36 字數 748 閱讀 2505

我的解釋也不準確,只是我自己的小白理解,想要深入的理解,還是要看書!!!!這個要注意      

執行緒就是一段**,一段寫在run()方法裡面的**,不同的執行緒都會去執行這個run()方法,就是多執行緒,在不同的執行緒去執行這段**時,會處於不同的狀態,總的來說,執行緒有5種狀態,

1.被建立狀態:建立了,但是沒有執行start()方法,待執行了start()方法後,才可能處於下面幾種狀態

2.執行狀態:這個時候,執行緒就在執行run()裡面的程式,就是具備了所謂的「執行權」和「執行資格」。

3.凍結狀態:就是在執行狀態的執行緒,呼叫了sleep()或wait()方法,轉到了凍結狀態,注意:是從執行狀態轉過來的。這個時候,執行緒把執行狀態的「執行權」和「執行資格」全部釋放了。

4.臨時阻塞狀態:這個狀態有兩個**,乙個是新建執行緒呼叫start()方法來的,另乙個是凍結狀態的sleep時間到或被notify喚醒了。這個時候的執行緒具備「執行資格」但是不具備「執行權」,其實就是處於競爭狀態,競爭「執行權」。

5.死亡狀態:執行緒的run()方法執行結束了。

其實所有對執行緒操作都是圍繞著這幾種狀態執行的,產生所謂的隨機性。如下圖(這個圖是參照畢向東老師課程的):

本篇文章,對多執行緒的介紹很不準確,想深入了解,一定不要參照這個。這只是lz自己當初對多執行緒的迷茫,後來自己多次思考理解的,但我想對純小白還是有一丟丟幫助,就總結了一下。

多執行緒 理解多執行緒(一)

程序 程序是cpu分配資源的基本單位 執行緒 執行緒是cpu排程的基本單位 資源分配給程序,所有執行緒共享該程序的資源 當執行緒數大於cpu的數量,會出現時間片的輪詢。cpu時間片是直接分配給執行緒的,執行緒拿到cpu時間片就能執行了 cpu時間片不是先分給程序然後再由程序分給程序下的執行緒的。所有...

多執行緒理解

本文介紹我對於多執行緒的理解。一 概念 1.作業系統下的多程序場景 但其實上面的情景是屬於作業系統下的多程序,不是單個程式內的多程序,這種多程序跟我們在單個程式內的多執行緒沒有什麼可以比較的。2.執行緒 舉個最簡單例子 我們的任務需要兩個計算型操作 a b 每個操作耗時10秒,如果是單執行緒,這時我...

多執行緒理解

單核cpu 單執行緒與多執行緒 執行時都是併發操作 a.執行條件 無io等操作,時間大小 多執行緒 單執行緒,原因 多執行緒執行時執行緒切換耗時間 b.執行條件 有io等操作,時間大小 單執行緒 多執行緒,原因 單執行緒要等待io的操作時間,從而加長時間 單核多執行緒的作用 在b中展現出優點。多核c...