黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專(zhuān)注Java教育14年 全國(guó)咨詢(xún)/投訴熱線(xiàn):400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) 學(xué)習(xí)攻略 Java學(xué)習(xí) Java線(xiàn)程狀態(tài)轉(zhuǎn)換的情況介紹

Java線(xiàn)程狀態(tài)轉(zhuǎn)換的情況介紹

更新時(shí)間:2022-12-08 11:55:44 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1553次

Java線(xiàn)程狀態(tài)轉(zhuǎn)換有哪些情況?動(dòng)力節(jié)點(diǎn)小編來(lái)告訴大家。

情況1NEW–>RUNNABLE

?當(dāng)調(diào)用t.start()方法的時(shí)候,由NEW–>Runnable

情況2RUNNABLE<–>WATTING

? t線(xiàn)程用synchronize(obj)獲得對(duì)象鎖后:

? 調(diào)用obj.wait()方法時(shí),t線(xiàn)程從RUNNABLE–>WAITING

? 調(diào)用obj.notify(),obj.notifyAll,t.interrupt時(shí):

? 競(jìng)爭(zhēng)鎖成功,t線(xiàn)程WAITING–>RUNNABLE

? 競(jìng)爭(zhēng)鎖失敗,t線(xiàn)程從WAITING–>BLOCKED

@Slf4j(topic = "c.TestWaitNotify")
public class TestWaitNotify {
    final static Object obj = new Object();
    public static void main(String[] args) {
        new Thread(() -> {
            synchronized (obj) {
                log.debug("執(zhí)行....");
                try {
                    obj.wait(); // 讓線(xiàn)程在obj上一直等待下去
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                log.debug("其它代碼....");
            }
        },"t1").start();
        new Thread(() -> {
            synchronized (obj) {
                log.debug("執(zhí)行....");
                try {
                    obj.wait(); // 讓線(xiàn)程在obj上一直等待下去
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                log.debug("其它代碼....");
            }
        },"t2").start();
        // 主線(xiàn)程兩秒后執(zhí)行
        sleep(0.5);
        log.debug("喚醒 obj 上其它線(xiàn)程");
        synchronized (obj) {
//            obj.notify(); // 喚醒obj上一個(gè)線(xiàn)程
            obj.notifyAll(); // 喚醒obj上所有等待線(xiàn)程
        }
    }
}

情況3 RUNNABLE<–>WATTING

當(dāng)前線(xiàn)程調(diào)用t.join()方法時(shí),當(dāng)前線(xiàn)程從RUNNABLE --> WAITING

注意是從當(dāng)前線(xiàn)程在t線(xiàn)程對(duì)象的監(jiān)視器上等待

t線(xiàn)程運(yùn)行結(jié)束,活調(diào)用了當(dāng)前線(xiàn)程的interrupt()時(shí),當(dāng)前線(xiàn)程從WAITING–> RUNNNABLE

情況4 RUNNABLE<–>WATTING

當(dāng)前線(xiàn)程調(diào)用LockSupport.park()方法會(huì)讓當(dāng)前線(xiàn)程從RUNNABLE --> WAITING

調(diào)用LockSupport.unpark(目標(biāo)線(xiàn)程)或調(diào)用了線(xiàn)程的interrupt(),會(huì)讓目標(biāo)線(xiàn)程從WAITING -->RUNNABLE

情況5RUNNABLE<–>TIMED_WATTING

t線(xiàn)程用synchronize(obj)獲取了對(duì)象鎖后

調(diào)用obj.wait(long n)方法時(shí),t線(xiàn)程從RUNABLE -->TIMED_WAITING

t線(xiàn)程等待時(shí)間超過(guò)了n毫秒,或調(diào)用obj.notify(),obj.notifyAll(),t.interrupt時(shí)

競(jìng)爭(zhēng)鎖成功,t線(xiàn)程從TIMED_WAITING -->RUNNABLE

競(jìng)爭(zhēng)鎖失敗,t線(xiàn)程從TIMED_WAITING --> BLOCKED

情況6 RUNNABLE<–>TIMED_WATTING

當(dāng)前線(xiàn)程調(diào)用t.join(long n) 方法是,當(dāng)前線(xiàn)程從RUNNABLE --> TIMED_WAITING

注意是當(dāng)前線(xiàn)程在t線(xiàn)程****對(duì)象的監(jiān)視器上等待

當(dāng)前線(xiàn)程等待時(shí)間超過(guò)了n毫秒,或t線(xiàn)程運(yùn)行結(jié)束,調(diào)用了當(dāng)前線(xiàn)程的interrupt()時(shí),當(dāng)前線(xiàn)程從TIMED_WAITING --> RUNNABLE

情況7 RUNNABLE<–>TIMED_WATTING

當(dāng)前線(xiàn)程調(diào)用Thread.Sleep(long n) ,當(dāng)前線(xiàn)程從RUNNABLE -->TIMED_WAITING

當(dāng)前線(xiàn)程等待時(shí)間超過(guò)了n毫秒,當(dāng)前線(xiàn)程從TIMED_WAITING -->RUNNABLE

情況8 RUNNABLE<–>TIMED_WATTING

當(dāng)前線(xiàn)程調(diào)用LockSupport.parkNanos(long nanos) 或LockSupport.parkUntil(long millis)時(shí),當(dāng)前線(xiàn)程從RUNNABLE -->TIMED_WATTING

調(diào)用LockSupport.unpark(目標(biāo)線(xiàn)程)或調(diào)用了線(xiàn)程的interrupt(),或是等待超時(shí),會(huì)讓目標(biāo)線(xiàn)程從TIMED_WATTING–> RUNNABLE

情況9 RUNNABLE<–>BOLCKED

t線(xiàn)程用synchronized(obj)獲取了對(duì)象鎖時(shí)如果競(jìng)爭(zhēng)失敗,從RUNNABLE -->BLOCKED

持obj鎖線(xiàn)程的同步代碼塊執(zhí)行完畢,會(huì)喚醒該帝鄉(xiāng)上所有的BLOCKED的線(xiàn)程重新競(jìng)爭(zhēng),如果其中t線(xiàn)程競(jìng)爭(zhēng)成功,從BLOCKED -->RUNNABLE,其他失敗的線(xiàn)程任然BLOCKED

情況10 RUNNABLE<–>TERMINATED

當(dāng)前線(xiàn)程所有代碼運(yùn)行完成,進(jìn)入TERMINATED

–>RUNNABLE,其他失敗的線(xiàn)程任然BLOCKED

情況10 RUNNABLE<–>TERMINATED

當(dāng)前線(xiàn)程所有代碼運(yùn)行完成,進(jìn)入TERMINATED

以上就是關(guān)于“Java線(xiàn)程狀態(tài)轉(zhuǎn)換的情況介紹”,大家如果想了解更多相關(guān)知識(shí),不妨來(lái)關(guān)注一下本站的Java多線(xiàn)程編程技術(shù)文檔,里面還有更豐富的知識(shí)等著大家去學(xué)習(xí),希望對(duì)大家能夠有所幫助。

提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 五月婷婷色 | 成年人在线免费 | 欧美日韩亚洲v在线观看 | 亚洲国产日韩欧美在线as乱码 | 日韩一区二区三区四区不卡 | 国产成人综合网亚洲欧美在线 | 国产精品欧美亚洲韩国日本99 | 男人的私人影院 | 日韩最新网址 | 国产成人啪午夜精品网站 | 欧美一区二区三区免费看 | 天天爱夜夜爱 | 亚洲九九夜夜 | 91小视频版在线观看www | 黄在线看 | 久久免费高清视频 | 国产三级视频网站 | 亚洲激情 | 欧美老人另类视频 | 亚洲欧美日韩在线一区 | 欧洲色吧 | 免费一级a毛片在线 | 欧美三级香港三级日本三级 | 日日摸狠狠的摸夜夜摸 | 成人国产一区二区 | 国产精品 视频一区 二区三区 | 国产精品视频人人做人人爱 | 婷婷综合在线 | 欧美日韩国产一区二区三区欧 | 国产精品欧美日韩 | 欧美最新一区二区三区四区 | 国产日韩欧美中文字幕 | 2020国产大片天天看 | 在线免费污视频 | freexxxxⅹhd18日本 | 午夜私人 | 台湾一级毛片 | 久久午夜网 | 欧美有码在线观看 | 1024cc香蕉在线观看免费 | 国产精品久久久久久免费 |