最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 線程的優(yōu)先級(setPriority)案例詳解

 更新時間:2021年08月27日 12:02:21   作者:飛少fly  
這篇文章主要介紹了Java 線程的優(yōu)先級(setPriority)案例詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下

線程可以劃分優(yōu)先級,優(yōu)先級高的線程得到的CPU資源比較多,也就是CPU優(yōu)先執(zhí)行優(yōu)先級高的線程對象中的任務。

設置線程優(yōu)先級有助于幫助線程規(guī)劃器確定下一次選中哪一個線程優(yōu)先執(zhí)行。

java中優(yōu)先級分為1-10個級別

線程優(yōu)先級的繼承特性 例如a線程啟迪b線程,則b線程的優(yōu)先級與a的一樣。

代碼說話:(很簡單)

public class MyThread1 extends Thread {
	@Override
	public void run() {
		System.out.println("MyThread1 run priority=" + this.getPriority());
		MyThread2 thread2 = new MyThread2();
		thread2.start();
	}
}
 
 
public class MyThread2 extends Thread {
	@Override
	public void run() {
		System.out.println("MyThread2 run priority=" + this.getPriority());
	}
}
 
public static void main(String[] args) {
		System.out.println("main thread begin priority="
				+ Thread.currentThread().getPriority());
		
		Thread.currentThread().setPriority(6);
		
		System.out.println("main thread end   priority="
				+ Thread.currentThread().getPriority());
		
		MyThread1 thread1 = new MyThread1();
		thread1.start();
	}

優(yōu)先級具有規(guī)則性

public class MyThread1 extends Thread {
	@Override
	public void run() {
		long beginTime = System.currentTimeMillis();
		long addResult = 0;
		for (int j = 0; j < 10; j++) {
			for (int i = 0; i < 50000; i++) {
				Random random = new Random();
				random.nextInt();
				addResult = addResult + i;
			}
		}
		long endTime = System.currentTimeMillis();
		System.out.println("★★★★★thread 1 use time=" + (endTime - beginTime));
	}
}
 
public class MyThread2 extends Thread {
	@Override
	public void run() {
		long beginTime = System.currentTimeMillis();
		long addResult = 0;
		for (int j = 0; j < 10; j++) {
			for (int i = 0; i < 50000; i++) {
				Random random = new Random();
				random.nextInt();
				addResult = addResult + i;
			}
		}
		long endTime = System.currentTimeMillis();
		System.out.println("☆☆☆☆☆thread 2 use time=" + (endTime - beginTime));
	}
}
 
public static void main(String[] args) {
		for (int i = 0; i < 5; i++) {
			MyThread1 thread1 = new MyThread1();
			thread1.setPriority(1);
			thread1.start();
 
			MyThread2 thread2 = new MyThread2();
			thread2.setPriority(10);
			thread2.start();
		}
	}

高優(yōu)先級的線程總是先執(zhí)行完

線程的優(yōu)先級和代碼的執(zhí)行順序沒有關系

優(yōu)先級具有隨機性

一般優(yōu)先級較高的線程先執(zhí)行run()方法,但是這個不能說的但肯定,因為線程的優(yōu)先級具有 “隨機性”也就是較高線程不一定每一次都先執(zhí)行完。

public class MyThread1 extends Thread {
	@Override
	public void run() {
		long beginTime = System.currentTimeMillis();
		for (int i = 0; i < 1000; i++) {
			Random random = new Random();
			random.nextInt();
		}
		long endTime = System.currentTimeMillis();
		System.out.println("★★★★★thread 1 use time=" + (endTime - beginTime));
	}
}
 
public class MyThread2 extends Thread {
	@Override
	public void run() {
		long beginTime = System.currentTimeMillis();
		for (int i = 0; i < 1000; i++) {
			Random random = new Random();
			random.nextInt();
		}
		long endTime = System.currentTimeMillis();
		System.out.println("☆☆☆☆☆thread 2 use time=" + (endTime - beginTime));
	}
}
 
 
public static void main(String[] args) {
		for (int i = 0; i < 5; i++) {
			MyThread1 thread1 = new MyThread1();
			thread1.setPriority(5);
			thread1.start();
 
			MyThread2 thread2 = new MyThread2();
			thread2.setPriority(6);
			thread2.start();
		}
	}

守護線程介紹:

java 中有兩種線程 一個是用戶線程,一個是守護(Daemon)線程

典型的守護線程就是垃圾回收線程,如果進程中沒有非守護線程了,則守護線程自動銷毀。

守護線程作用就是為其他線程的運行提供便利的服務,比如GC。

public class MyThread extends Thread {
	private int i = 0;
 
	@Override
	public void run() {
		try {
			while (true) {
				i++;
				System.out.println("i=" + (i));
				Thread.sleep(1000);
			}
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
 
 
public static void main(String[] args) {
		try {
			MyThread thread = new MyThread();
			thread.setDaemon(true);//設置守護線程
			thread.start();
			Thread.sleep(5000);
			System.out.println("我離開thread對象也不再打印了,也就是停止了!");
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

到此這篇關于Java 線程的優(yōu)先級(setPriority)案例詳解的文章就介紹到這了,更多相關Java 線程的優(yōu)先級(setPriority)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺談使用Java Web獲取客戶端真實IP的方法示例詳解

    淺談使用Java Web獲取客戶端真實IP的方法示例詳解

    這篇文章主要介紹了使用Java-Web獲取客戶端真實IP的方法示例詳解。一般我們無法獲取客戶端真實IP,原因是:當我們通過request獲取客戶端IP時,自身服務器通常會為了保護信息或者負載均衡的目的,對自身服務器做反向代理。對此感興趣可以了解一下
    2020-07-07
  • 輕松掌握Java注解,讓編程更智能、更優(yōu)雅

    輕松掌握Java注解,讓編程更智能、更優(yōu)雅

    輕松掌握Java注解?沒問題!想要讓你的Java代碼更具可讀性、維護性,同時提升開發(fā)效率?本指南將帶你快速入門Java注解的世界,只需短短幾分鐘,你就能揭秘這個強大的編程工具,讓編寫有聲明性邏輯的代碼變得輕而易舉,趕快一起來探索吧!
    2024-01-01
  • Java設計模式之策略模式

    Java設計模式之策略模式

    這篇文章介紹了Java設計模式之策略模式,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-10-10
  • java匿名內部類實例簡析

    java匿名內部類實例簡析

    匿名類是不能有名稱的類,所以沒辦法引用它們,必須在創(chuàng)建時,作為new語句的一部分來聲明它們,需要了解更多的可以參考本文
    2012-11-11
  • Java中的構造方法this、super的用法詳解

    Java中的構造方法this、super的用法詳解

    這篇文章較詳細的給大家介紹了Java中的構造方法this、super的用法,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2018-07-07
  • 詳解JVM棧溢出和堆溢出

    詳解JVM棧溢出和堆溢出

    今天帶大家學習的是Java的相關知識,文章圍繞著JVM棧溢出和堆溢出展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • 跟我學Java Swing之游戲設計(2)

    跟我學Java Swing之游戲設計(2)

    跟我學Java Swing之游戲設計(2)...
    2006-12-12
  • 通過實例解析java過濾器和攔截器的區(qū)別

    通過實例解析java過濾器和攔截器的區(qū)別

    這篇文章主要介紹了通過實例解析java過濾器和攔截器的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • Spring中的AOP操作你了解嗎

    Spring中的AOP操作你了解嗎

    這篇文章主要為大家詳細介紹了Spring中的AOP操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • 云IDE:Eclipse Che:Eclipse下一代IDE(推薦)

    云IDE:Eclipse Che:Eclipse下一代IDE(推薦)

    這篇文章主要介紹了云IDE:Eclipse Che:Eclipse下一代IDE,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09

最新評論

岑溪市| 来凤县| 永吉县| 左贡县| 湘潭市| 唐山市| 贵溪市| 阿拉尔市| 石景山区| 南宁市| 西乌珠穆沁旗| 和田市| 海伦市| 临朐县| 灵川县| 金沙县| 伊通| 清流县| 乐业县| 车致| 柳林县| 农安县| 南安市| 新建县| 阳信县| 珲春市| 永城市| 平南县| 龙游县| 宁夏| 南平市| 绥棱县| 余庆县| 安仁县| 凌海市| 六枝特区| 洛南县| 莱芜市| 乐亭县| 麻城市| 尼勒克县|