溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么在java中使用yield

發(fā)布時(shí)間:2021-04-21 17:14:16 來(lái)源:億速云 閱讀:282 作者:Leah 欄目:編程語(yǔ)言

怎么在java中使用yield?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

Java是什么

Java是一門(mén)面向?qū)ο缶幊陶Z(yǔ)言,可以編寫(xiě)桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序。

1.概念

yield執(zhí)行后線程進(jìn)入就緒狀態(tài)。通知調(diào)度器,主動(dòng)讓出對(duì)cpu的占用,讓別的線程執(zhí)行,但是不一定能夠保證別的同樣優(yōu)先級(jí)的線程能夠執(zhí)行。線程會(huì)從運(yùn)行態(tài)切換到就緒態(tài),但是也有可能馬上從就緒態(tài)又切換到運(yùn)行狀態(tài)。

2.使用注意

(1)yield是一個(gè)靜態(tài)的本地方法(native)

(2)調(diào)用yield后,yield告訴當(dāng)前線程把運(yùn)行機(jī)會(huì)交給線程池中有相同優(yōu)先級(jí)的線程。

(3)yield不能保證,當(dāng)前線程迅速?gòu)倪\(yùn)行狀態(tài)切換到就緒狀態(tài)。

(4)yield只能是將當(dāng)前線程從運(yùn)行狀態(tài)轉(zhuǎn)換到就緒狀態(tài),而不能是等待或者阻塞狀態(tài)。

3.實(shí)例

    //yield放棄CPU時(shí)間片
    public static void yieldTest(){
        //定義一個(gè)線程
        Thread thread = new Thread(() -> {
            System.out.println(Thread.currentThread().getName() + ": 測(cè)試線程開(kāi)始執(zhí)行。。。");
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(Thread.currentThread().getName() + ": 測(cè)試線程執(zhí)行結(jié)束了。");
        });
        thread.start();
        System.out.println(Thread.currentThread().getName() + ": 執(zhí)行yield方法");
        Thread.yield();
        System.out.println(Thread.currentThread().getName() + ": 主線程開(kāi)始執(zhí)行");
}

打印結(jié)果:

main: 執(zhí)行yield方法
main: 主線程開(kāi)始執(zhí)行
Thread-0: 測(cè)試線程開(kāi)始執(zhí)行。。。
Thread-0: 測(cè)試線程執(zhí)行結(jié)束了。

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝您對(duì)億速云的支持。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI