首页 > 其他分享 >线程优先级

线程优先级

时间:2023-08-25 10:14:26浏览次数:38  
标签:myPriority 优先级 Thread start 线程 new

线程优先级

  1. Java提供一个线程调度器来监控程序中启动后进入就绪状态的所有线程,线程调度器按照优先级决定应该调度哪个线程来执行。

  2. 线程的优先级用数字表示,范围从1~10.

Thread.MIN_PRIORITY = 1;Thread.MAX_PRIORITY = 10;Thread.NORM_PRIORITY = 5;

  1. 使用以下方式改变或获取优先级:getPriority().setPriority(int xxxx)

  2. 优先级低只是意味着获得调度的概率低.并不是优先级低就不会被调用了.这都是看CPU的调度

public class TestPriority extends Thread{

   public static void main(String[] args) {
       // 主线程默认优先级
       System.out.println(Thread.currentThread().getName()+"--->"+Thread.currentThread().getPriority());
       MyPriority myPriority = new MyPriority();
       Thread t1 = new Thread(myPriority);
       Thread t2 = new Thread(myPriority);
       Thread t3 = new Thread(myPriority);
       Thread t4 = new Thread(myPriority);
       Thread t5 = new Thread(myPriority);
       Thread t6 = new Thread(myPriority);

       // 先设置优先级,再启动
       t1.start();
       t2.setPriority(1);
       t2.start();
       t3.start();
       t4.setPriority(Thread.MAX_PRIORITY);
       t4.start();

       t5.setPriority(8);
       t5.start();

       t6.setPriority(4);
       t6.start();
  }
}


class MyPriority implements Runnable{

   public void run(){
       System.out.println(Thread.currentThread().getName()+"--->"+Thread.currentThread().getPriority());
  }

}
 

标签:myPriority,优先级,Thread,start,线程,new
From: https://www.cnblogs.com/yuan947022015/p/17656120.html

相关文章

  • 并发和并行,线程和进程
     ......
  • 上位机_C#多线程的取消、继续、停止
    publicForm1(){InitializeComponent();Task.Run(async()=>{for(inti=0;i<1000;i++){if(cancellationToken.IsCancellationReq......
  • 线程状态
    线程状态1.总状态  2.线程方法:setPriority(intnewPriority):更改线程优先级staticvoidsleep(longmillis):在指定的毫秒数内让当前正在执行的线程休眠voidjoin():等待该线程终止staticvoidyield():暂停当前正在执行的线程对象,并执行其他线程voidinter......
  • 多线程|加锁操作
    classCounter{publicintcount=0;publicvoidadd(){count++;}}publicclasssynDemo{publicstaticvoidmain(String[]args){Countercounter=newCounter();Threadt1=newThread(()->{for(inti=......
  • allure报告中firefox信息不展示(多浏览器或多线程执行时只显示一个浏览器的日志)
    安装的allure-pytest的版本要是2.11.1之前的(之后的版本有test_result.historyId,但位置及方法不一样,我目前没研究怎么修改)在依赖包Lib--site-packages--allure_pytest--listener.py文件里修改test_result.historyId=md5(item.nodeid)变成test_result.historyId=md5(item.nod......
  • 《asyncio 系列》1. 什么是 asyncio?如何基于单线程实现并发?事件循环又是怎么工作的?
    https://www.cnblogs.com/traditional/p/17357782.html楔子许多应用程序,尤其在当今的Web应用程序领域,严重依赖IO操作。这些类型的操作包括从Intermet下载网页的内容、通过网络与一组微服务进行通信,或者针对MySOL、Postgres等数据库同时运行多个查询。Web请求或与微服......
  • 线程
    线程1.多任务2.多线程线程就是独立的执行路径;main()称之为主线程,为系统的入口,用于执行整个程序;3.程序,进程,线程在程序运行时,即使没有自己创建线程,后台也会有多个线程,如主线程,gc线程;在一个进程中,如果开辟了多个线程,线程的运行由调度器安排调度,调度器是与操作系统紧密相......
  • lock解决线程安全问题,与synchronize区别,同步的三种方式
    packagecom.atjava.test;importjava.util.concurrent.locks.ReentrantLock;classWindow1implementsRunnable{privateintticket=100;privateReentrantLocklock=newReentrantLock();@Overridepublicvoidrun(){while(true)......
  • 进程、线程、协程
    进程内可开启多个线程,线程内可开启多个协程进程、线程可以利用cpu多核来并行,协程是切换成本低,不是并行。 ......
  • 【操作系统】2.进程和线程
    1.操作系统的多进程图像操作系统main函数中最后if(!fork()){init();},也就是main函数最后创建了第1个进程,init执行了shell(Windows)桌面。操作系统管理和组织进程都使用PCB(ProcessControlBlock),不同的程序的PCB放在不同的位置,用于记录该进程运行时的状态。操作系统对进程......