我是靠谱客的博主 机智故事,最近开发中收集的这篇文章主要介绍java多线程 修改优先级_java笔记--查看和修改线程的优先级,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

查看和修改线程的优先级

java中每一个线程都有优先级属性,在默认情况下,新建的线程的优先级与创建该线程的线程优先级相同。

每当线程调度器选择要运行的线程时,通常选择优先级较高的线程。

注:线程的优先级是高度依赖于操作系统的,而且Sun对于不同的操作系统提供的虚拟机并不完全相同

java JVM将线程的等级分为10级,MIN_PRIORITY为1级,MAX_PRIORITY为10级

对于main线程,它的默认优先级是5,最好不要修改线程的默认优秀级。

如果线程中有几个高优先级的线程,运行时优先选择这些线程运行;

若还有低优先级的线程,就会出现"饥饿"状态,即低优先级的线程基本不会被执行

Thread类与线程优先级相关的属性和方法:

MAX_PRIORITY : 线程可以具有最高优先级

MIN_PRIORITY : 线程可以具有的最低优先级

NORM_PRIORITY : 分配给线程的默认优先级

getPriority() : 获得线程的优先级

setPriority() : 修改线程的优先级

代码实例:

package com.xhj.thread;

import java.util.Scanner;

/**

* 查看和修改线程的优先级

*

* @author XIEHEJUN

*

*/

public class ModifyThreadPriority {

/**

* 获取并打印输出当前所有运行中的线程,包括(线程ID,线程名称,线程优先级)

*

* @return

*/

public static Thread[] getThreads() {

ThreadGroup group = Thread.currentThread().getThreadGroup();

Thread[] threads = new Thread[group.activeCount()];

group.enumerate(threads);

System.out.println("线程IDt" + "线程名称t" + "线程优先级");

for (Thread thread : threads) {

System.out.println(thread.getId() + "t" + thread.getName() + "t"

+ thread.getPriority());

}

return threads;

}

/**

* 数据输入入口

*

* @return

*/

public static String input() {

Scanner sc = new Scanner(System.in);

String str = sc.nextLine();

return str;

}

/**

* 修改线程优先级

*

* @param threads

*/

public static void modifyPriority(Thread[] threads) {

System.out.println("请输入您要修改的线程的ID");

int i = Integer.parseInt(input());

int count = -1;

for (Thread thread : threads) {

if (thread.getId() == i) {

System.out.println("请输入您要修改成的优先级别:");

int priroty = Integer.parseInt(input());

thread.setPriority(priroty);

break;

} else {

count++;

}

}

if (count == threads.length - 1) {

System.out.println("找不到您要的线程");

}

getThreads();

}

public static void main(String[] args) {

modifyPriority(getThreads());

}

}

最后

以上就是机智故事为你收集整理的java多线程 修改优先级_java笔记--查看和修改线程的优先级的全部内容,希望文章能够帮你解决java多线程 修改优先级_java笔记--查看和修改线程的优先级所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部