国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

JAVA多線程04-基礎篇-優先級

suemi / 3035人閱讀

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

一、線程優先級

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

二、源碼分析

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

三、線程優先級示例

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();
                      }
          }
}

輸出結果(截取部分):

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、結果說明

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

四、總結

高優先級線程并不是一直優于低優先級線程執行

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67861.html

相關文章

  • JAVA 線程和并發基礎面試問答

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

    dreamans 評論0 收藏0
  • JAVA 線程和并發基礎

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

    vboy1010 評論0 收藏0
  • Java實戰001-線程池ExecutorService

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

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

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

    awkj 評論0 收藏0

發表評論

0條評論

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