欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java 多線程優(yōu)先級(jí)實(shí)例詳解

 更新時(shí)間:2017年04月10日 15:24:33   投稿:lqh  
這篇文章主要介紹了Java 多線程優(yōu)先級(jí)實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下

Java 多線程優(yōu)先級(jí)實(shí)例詳解

線程的優(yōu)先級(jí)將該線程的重要性傳遞給調(diào)度器。盡管CPU處理現(xiàn)有線程集的順序是不確定的,但是調(diào)度器將傾向于讓優(yōu)先權(quán)最高的線程先執(zhí)行。

你可以用getPriority()來讀取現(xiàn)有線程的優(yōu)先級(jí),并且在任何時(shí)刻都可以通過setPriority()來修改優(yōu)先級(jí)。

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class SimplePriorities implements Runnable {

  private int countDown = 5;

  /*Java語言規(guī)范第三版中對(duì)volatile的定義如下: java編程語言允許線程訪問共享變量,
  為了確保共享變量能被準(zhǔn)確和一致的更新,線程應(yīng)該確保通過排他鎖單獨(dú)獲得這個(gè)變量。
  Java語言提供了volatile,在某些情況下比鎖更加方便。如果一個(gè)字段被聲明成volatile,
  java線程內(nèi)存模型確保所有線程看到這個(gè)變量的值是一致的。*/
  private volatile double d;
  private int priority;

  public SimplePriorities(int priority){
    this.priority = priority;
  }

  public String toString(){
    //獲取當(dāng)前線程信息
    return Thread.currentThread() + ":" + countDown;
  }

  @Override
  public void run() {
    //設(shè)置線程優(yōu)先級(jí) 1-10
    Thread.currentThread().setPriority(priority);

    while(true){

      for(int i = 0;i<100000;i++){
        d += (Math.PI + Math.E) / (double)i;
        if(i00 == 0){
          Thread.yield();
        }
      }
      System.out.println(this.toString());

      if(--countDown == 0)return;

    }

  }

  public static void main(String[] args) {


    ExecutorService exec = Executors.newCachedThreadPool();

    //優(yōu)先級(jí)為1
    exec.execute(new SimplePriorities(Thread.MIN_PRIORITY));
    //優(yōu)先級(jí)為10
    exec.execute(new SimplePriorities(Thread.MAX_PRIORITY));

    exec.shutdown();
  }

}

toString()方法被覆蓋,以便使用Thread.toString()方法來打印線程的名稱,線程的優(yōu)先級(jí)以及線程所屬的“線程組”。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • String實(shí)例化及static final修飾符實(shí)現(xiàn)方法解析

    String實(shí)例化及static final修飾符實(shí)現(xiàn)方法解析

    這篇文章主要介紹了String實(shí)例化及static final修飾符實(shí)現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • java顯示當(dāng)前運(yùn)行時(shí)的參數(shù)(java運(yùn)行參數(shù))

    java顯示當(dāng)前運(yùn)行時(shí)的參數(shù)(java運(yùn)行參數(shù))

    這篇文章主要介紹了java顯示當(dāng)前運(yùn)行時(shí)參數(shù)的示例(java運(yùn)行參數(shù)),需要的朋友可以參考下
    2014-04-04
  • MybatisPlus多表查詢及分頁查詢完整代碼

    MybatisPlus多表查詢及分頁查詢完整代碼

    這篇文章主要介紹了MybatisPlus多表查詢及分頁查詢完整代碼,本文通過示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • Springboot中MyBatisplus使用IPage和Page分頁的實(shí)例代碼

    Springboot中MyBatisplus使用IPage和Page分頁的實(shí)例代碼

    這篇文章主要介紹了Springboot中MyBatisplus使用IPage和Page分頁,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 在Mac上安裝JDK21的詳細(xì)流程

    在Mac上安裝JDK21的詳細(xì)流程

    在macOS上安裝JDK(Java Development Kit)21是相對(duì)簡(jiǎn)單的過程,這篇文章主要給大家介紹了關(guān)于在Mac上安裝JDK21的詳細(xì)流程,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • java中File類的構(gòu)造函數(shù)及其方法

    java中File類的構(gòu)造函數(shù)及其方法

    這篇文章主要介紹了java中File類的構(gòu)造函數(shù)及其方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Mybatis-plus設(shè)置某個(gè)字段值為null的方法總結(jié)

    Mybatis-plus設(shè)置某個(gè)字段值為null的方法總結(jié)

    mybatis-plus以下簡(jiǎn)稱mp,目前應(yīng)該也算是主流的一款數(shù)據(jù)訪問層應(yīng)用框架,下面這篇文章主要給大家介紹了關(guān)于Mybatis-plus設(shè)置某個(gè)字段值為null的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • Spring三種方法的注解自動(dòng)注入問題

    Spring三種方法的注解自動(dòng)注入問題

    這篇文章主要介紹了Spring三種方法的注解自動(dòng)注入問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Java實(shí)現(xiàn)文件分割和文件合并實(shí)例

    Java實(shí)現(xiàn)文件分割和文件合并實(shí)例

    本篇文章主要介紹了Java實(shí)現(xiàn)文件分割和文件合并實(shí)例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • 一文了解Java?線程池的正確使用姿勢(shì)

    一文了解Java?線程池的正確使用姿勢(shì)

    線程池在平時(shí)的工作中出場(chǎng)率非常高,基本大家多多少少都要了解過,可能不是很全面,本文和大家基于jdk8學(xué)習(xí)下線程池的全面使用,以及分享下使用過程中遇到的一些坑,希望對(duì)大家有所幫助
    2022-10-10

最新評(píng)論