成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JAVA多線程04-基礎(chǔ)篇-優(yōu)先級

suemi / 3048人閱讀

摘要:一線程優(yōu)先級線程優(yōu)先級的范圍是,默認優(yōu)先級是,線程優(yōu)先級的主要作用是讓調(diào)度器優(yōu)先調(diào)度高優(yōu)先級線程,但這不意味著低優(yōu)先級線程得不到執(zhí)行,通常情況不需要修改線程優(yōu)先級,類中有個優(yōu)先級的常量二源碼分析線程所屬的線程組設(shè)置的級別不能大于且不能小于設(shè)

一、線程優(yōu)先級

線程優(yōu)先級的范圍是1~10,默認優(yōu)先級是5,線程優(yōu)先級的主要作用是讓調(diào)度器優(yōu)先調(diào)度高優(yōu)先級線程,但這不意味著低優(yōu)先級線程得不到執(zhí)行,通常情況不需要修改線程優(yōu)先級,Thread類中有3個優(yōu)先級的常量:

二、源碼分析

public final void setPriority(int newPriority) {
      ThreadGroup g;//線程所屬的線程組
      checkAccess();
      //設(shè)置的級別不能大于10且不能小于1
      if (newPriority > MAX_PRIORITY || newPriority < MIN_PRIORITY) {
            throw new IllegalArgumentException();
      }
      if((g = getThreadGroup()) != null) {
            //設(shè)置的級別不能大于所屬線程組的最大級別
            if (newPriority > g.getMaxPriority()) {
                newPriority = g.getMaxPriority();
            }
          setPriority0(priority = newPriority);//本地方法
      }
}

三、線程優(yōu)先級示例

public class ThreadPrioritiesDemo extends Thread {
      private int priority;
      public ThreadPrioritiesDemo(String name, int priority) {
            super(name);
            this.priority = priority;
      }
    public static void main(String[] args) {
          Thread t1 = new ThreadPrioritiesDemo("thread1", 1);
          Thread t2 = new ThreadPrioritiesDemo("thread2", 10);
          t1.start();
          t2.start();
    }
    @Override
    public void run() {
            Thread.currentThread().setPriority(priority);
                    for (int i = 0; i < 1000; i++) {
                        System.out.println(this + ":" + i);
                         if (i % 2 == 0)
                              Thread.yield();
                      }
          }
}

輸出結(jié)果(截取部分):

Thread[thread1,1,main]:670
Thread[thread2,10,main]:293
Thread[thread2,10,main]:294
Thread[thread1,1,main]:671
Thread[thread1,1,main]:672
Thread[thread2,10,main]:295
Thread[thread2,10,main]:296
Thread[thread1,1,main]:673
Thread[thread1,1,main]:674
Thread[thread2,10,main]:297
Thread[thread2,10,main]:298
Thread[thread1,1,main]:675
Thread[thread1,1,main]:676
Thread[thread2,10,main]:299

3.1、結(jié)果說明

新開啟2個線程,線程1優(yōu)先級為1,線程2優(yōu)先級為10,兩個線程交替執(zhí)行,高優(yōu)先級線程(t2)并不是一直優(yōu)先于t1執(zhí)行

四、總結(jié)

高優(yōu)先級線程并不是一直優(yōu)于低優(yōu)先級線程執(zhí)行

歡迎加入學習交流群569772982,大家一起學習交流。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67861.html

相關(guān)文章

  • JAVA 線程和并發(fā)基礎(chǔ)面試問答

    摘要:多線程和并發(fā)問題是技術(shù)面試中面試官比較喜歡問的問題之一。線程可以被稱為輕量級進程。一個守護線程是在后臺執(zhí)行并且不會阻止終止的線程。其他的線程狀態(tài)還有,和。上下文切換是多任務(wù)操作系統(tǒng)和多線程環(huán)境的基本特征。 多線程和并發(fā)問題是 Java 技術(shù)面試中面試官比較喜歡問的問題之一。在這里,從面試的角度列出了大部分重要的問題,但是你仍然應(yīng)該牢固的掌握Java多線程基礎(chǔ)知識來對應(yīng)日后碰到的問題。(...

    dreamans 評論0 收藏0
  • JAVA 線程和并發(fā)基礎(chǔ)

    摘要:線程可以被稱為輕量級進程。一個守護線程是在后臺執(zhí)行并且不會阻止終止的線程。其他的線程狀態(tài)還有,和。上下文切換是多任務(wù)操作系統(tǒng)和多線程環(huán)境的基本特征。在的線程中并沒有可供任何對象使用的鎖和同步器。 原文:Java Multi-Threading and Concurrency Interview Questions with Answers 翻譯:并發(fā)編程網(wǎng) - 鄭旭東 校對:方騰飛 多...

    vboy1010 評論0 收藏0
  • Java實戰(zhàn)001-線程池ExecutorService

    線程池ExecutorService 一. new Thread的弊端 執(zhí)行一個異步任務(wù)你還只是如下new Thread嗎? new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start(); 那你就太out了,...

    dayday_up 評論0 收藏0
  • 線程三分鐘就可以入個門了!

    摘要:系統(tǒng)級線程核心級線程由操作系統(tǒng)內(nèi)核進行管理。值得注意的是多線程的存在,不是提高程序的執(zhí)行速度。實現(xiàn)多線程上面說了一大堆基礎(chǔ),理解完的話。虛擬機的啟動是單線程的還是多線程的是多線程的。 前言 之前花了一個星期回顧了Java集合: Collection總覽 List集合就這么簡單【源碼剖析】 Map集合、散列表、紅黑樹介紹 HashMap就是這么簡單【源碼剖析】 LinkedHashMa...

    awkj 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<