java线程优先级

java 中的线程优先级的范围是1~10,默认的优先级是5。10最高。

MIN_PRIORITY  1

MAX_PRIORITY 10

NORM_PRIORITY 5

优先级高的获得cpu的几率更大些,不是优先级高的就先执行完,线程优先级随机特性

在java中,线程的优先级具有继承性,例如A线程启动B线程,则A和B的优先级是一样的

线程创建后,可通过调用setPriority()方法改变优先级。

1public class Test5 { 2 3 public static class TheadT extends Thread{ 4 @Override 5 public void run() { 6 while (true) { 7 System.out.println(Thread.currentThread().getName()); 8 } 9 } 10 } 11 12 public static void main(String[] args) { 13 Thread t1=new TheadT(); 14 t1.setName("t1"); 15 Thread t2=new TheadT(); 16 t2.setName("t2"); 17 18 t1.setPriority(Thread.MIN_PRIORITY); 19 t2.setPriority(Thread.MAX_PRIORITY); 20 21 t1.start(); 22 t2.start(); 23 } 24}
点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

java四种线程池类型以及可选择的阻塞队列

之前笔记有记录java线程池的拒绝策略,回顾一下线程池的处理任务的优先级:先考虑corePoolSize、任务队列(缓冲队列)workQueue、最大线程maximumPoolSize,如果三者都满了,使用handler处理被拒绝的任务。即:如果运行的线程少于corePoolSize,则Executor始终首选添加新的线程,而不进行排队

java多线程小结,及解决应用挂死的问题

这两天为了定位JBOSS老是挂死的问题,学习了一下JAVA多线程方面的知识,在此总结一下1、在Java程序中,JVM负责线程的调度。线程调度是指按照特定的机制为多个线程分配CPU的使用权。调度的模式有两种:分时调度和抢占式调度。分时调度是所有线程轮流获得CPU使用权,并平均分配每个线程占用CPU的时间;抢占式调度是根据线程的优先级别来获

SCHED_FIFO与SCHED_OTHER调度机制

疑问两个线程分别有不同的调度策略,一个SCHED\_FIFO,一个SCHED\_OTHER,按照之前的理解,SCHED\_FIFO实时线程一定会占用CPU一直运行,导致SCHED\_OTHER的普通线程得不到CPU,事实是这样么?验证写了一小段代码,一个是验证SCHED\_FIFO的高优先级线程会不会抢占低优先级的线程,在不主动放弃的

java 线程有哪些方法

1.start()启动2.isAlive()是否活动这,只有在start之后,在run方法走完之后,是true3.state()线程状态4.getPriority() 获取线程优先级,默认是5,线程默认优先级为5,如果不手动指定,那么线程优先级具有继承性,比如线程A启动线程B,那么线程B的优先级和线程A的优先级相同5.setPrior

Java的编程逻辑

1、run()和start()的区别2、线程的基本属性和方法1.id:一个递增的整数,每创建一个线程就加一2.name3.优先级:从1到10,默认为5,会映射到系统中的优先级。数字越大,要优先级越高4.状态: NEW:还没调用start RUNABLE:正在执行run或者正在等待cup分配