線程的停止&休眠&禮讓&強(qiáng)制執(zhí)行&優(yōu)先級(jí)

線程的停止

//建議線程正常停止 --> 利用次數(shù),不建議死循環(huán)
//建議使用標(biāo)志位 --> 設(shè)置一個(gè) flag 標(biāo)志位
//不使用 stop 或 destroy 等過時(shí)方法
public class TestStop implements Runnable{

    //1、設(shè)置一個(gè)標(biāo)志位
    private boolean flag = true;

    @Override
    public void run() {
        int i = 0;
        while (flag) {
            System.out.println("run..Thread" + i++);
        }
    }

    //2、實(shí)在一個(gè)公開的方法停止線程,轉(zhuǎn)換標(biāo)志位
    public void stop(){
        this.flag = false;
    }

    public static void main(String[] args) {

        TestStop testStop = new TestStop();

        new Thread(testStop).start();

        for (int i = 0; i < 100; i++) {
            System.out.println("main" + i);
            if (i == 90) {
                testStop.stop();
                System.out.println("線程停止了");
            }
        }
    }
}

線程的休眠

//延時(shí)200ms
Thread.sleep(200);

線程的禮讓—— yield

比如有A,B兩個(gè)線程,如果在A運(yùn)行時(shí)進(jìn)行禮讓,此時(shí)A從運(yùn)行態(tài)轉(zhuǎn)為就緒態(tài),讓CPU重新調(diào)度;有可能禮讓成功,改為B運(yùn)行,也有可能失敗,仍是A在運(yùn)行。

thread.yield();

線程的強(qiáng)制執(zhí)行—— join

就是某線程是VIP,可以插隊(duì)運(yùn)行

thread.join();

線程的優(yōu)先級(jí)—— priority

優(yōu)先級(jí)越高的線程,所獲得的資源的就越多,有更大的可能性先執(zhí)行,而不是一定會(huì)先執(zhí)行,具體看CPU的調(diào)度。所以有可能出現(xiàn)低優(yōu)先級(jí)線程先執(zhí)行的情況,就是所謂的優(yōu)先級(jí)倒置,引起性能問題
注意:先設(shè)置優(yōu)先級(jí),再啟動(dòng);即優(yōu)先級(jí)的設(shè)定在start()調(diào)度之前

getPriority().setPriority(int xxx)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 本文主要講了java中多線程的使用方法、線程同步、線程數(shù)據(jù)傳遞、線程狀態(tài)及相應(yīng)的一些線程函數(shù)用法、概述等。 首先講...
    李欣陽閱讀 2,597評(píng)論 1 15
  • Java多線程學(xué)習(xí) [-] 一擴(kuò)展javalangThread類 二實(shí)現(xiàn)javalangRunnable接口 三T...
    影馳閱讀 3,107評(píng)論 1 18
  • 林炳文Evankaka原創(chuàng)作品。轉(zhuǎn)載自http://blog.csdn.net/evankaka 本文主要講了ja...
    ccq_inori閱讀 734評(píng)論 0 4
  • 一、進(jìn)程和線程 進(jìn)程 進(jìn)程就是一個(gè)執(zhí)行中的程序?qū)嵗?,每個(gè)進(jìn)程都有自己獨(dú)立的一塊內(nèi)存空間,一個(gè)進(jìn)程中可以有多個(gè)線程。...
    阿敏其人閱讀 2,700評(píng)論 0 13
  • 線程 操作系統(tǒng)線程理論 線程概念的引入背景 進(jìn)程 之前我們已經(jīng)了解了操作系統(tǒng)中進(jìn)程的概念,程序并不能單獨(dú)運(yùn)行,只有...
    go以恒閱讀 1,793評(píng)論 0 6

友情鏈接更多精彩內(nèi)容