91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在java線程中使用start

發布時間:2021-04-25 15:21:42 來源:億速云 閱讀:354 作者:Leah 欄目:編程語言

本篇文章為大家展示了怎么在java線程中使用start,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

Java有哪些集合類

Java中的集合主要分為四類:1、List列表:有序的,可重復的;2、Queue隊列:有序,可重復的;3、Set集合:不可重復;4、Map映射:無序,鍵唯一,值不唯一。

1.start()概念

開始一個線程后,線程就進入就緒狀態,使線程所代表的虛擬處理機處于可運行狀態,這意味著它可以由JVM調度并執行。但是這并不意味著線程就會立即運行。只有當cpu分配時間片時,這個線程獲得時間片時,才開始執行run()方法。

2.start()與run()區別

start()是方法,它調用run()方法,而run()方法是你必須重寫的。run()方法中包含的是線程的主體(真正的邏輯)。

3.start()啟動線程實例

new Thread(() -> {
    // todo
}).start();
 
// JDK 源碼
public synchronized void start() {
 
    if (threadStatus != 0)
        throw new IllegalThreadStateException();
 
    group.add(this);
    boolean started = false;
    try {
        start0();
        started = true;
    } finally {
        try {
            if (!started) {
                group.threadStartFailed(this);
            }
        } catch (Throwable ignore) {}
    }
}

線程啟動方法 start(),由 JVM 調用此線程的 run 方法,使線程開始執行。其實這就是一個 JVM 的回調過程。

另外 start() 是一個 synchronized 方法,但為了避免多次調用,在方法中會由線程狀態判斷。threadStatus != 0。

group.add(this),是把當前線程加入到線程組,ThreadGroup。

start0(),是一個本地方法,通過 JNI 方式調用執行。這一步的操作才是啟動線程的核心步驟。

上述內容就是怎么在java線程中使用start,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

秦皇岛市| 城固县| 潼南县| 东宁县| 石台县| 孟州市| 来安县| 洞头县| 新绛县| 赤水市| 宁波市| 靖宇县| 治县。| 元江| 南部县| 县级市| 田林县| 徐水县| 济宁市| 鄂托克前旗| 福泉市| 葵青区| 望都县| 淳安县| 东海县| 临邑县| 凤台县| 韶关市| 泰安市| 岳西县| 西丰县| 高碑店市| 唐山市| 会宁县| 乐昌市| 五常市| 定襄县| 搜索| 广饶县| 汝州市| 万荣县|