设置线程优先级

超、凢脫俗 2022-06-16 00:13 279阅读 0赞

优先级的高低只是说明线程执行频率的高低,并不会导致线程得不到执行,优先权不会导致死锁

示例:

  1. public class SimplePriorities implements Runnable{
  2. /**
  3. * 倒计时变量
  4. */
  5. private int countDown=5;
  6. private volatile double d;
  7. /**
  8. * 优先等级
  9. */
  10. private int priority;
  11. public SimplePriorities(int priority){
  12. this.priority=priority;
  13. }
  14. /**
  15. * 获取自动生成的名称和倒计时数
  16. * @return
  17. */
  18. public String toString(){
  19. return Thread.currentThread()+":"+countDown;
  20. }
  21. @Override
  22. public void run() {
  23. /**
  24. *设置当前线程的优先级
  25. */
  26. Thread.currentThread().setPriority(priority);
  27. while (true){
  28. for(int i=1;i<100000;i++){
  29. d+=(Math.PI+Math.E)/(double)i;
  30. if(i%1000==0)
  31. //让出当前线程
  32. Thread.yield();
  33. }
  34. System.out.println(this);
  35. if(--countDown==0)
  36. return;
  37. }
  38. }
  39. public static void main(String[] args){
  40. //使用执行器管理Thread对象
  41. ExecutorService exec= Executors.newCachedThreadPool();
  42. for(int i=0;i<5;i++)
  43. //优先级最小
  44. exec.execute(new SimplePriorities(Thread.MIN_PRIORITY));
  45. //优先级最大
  46. exec.execute(new SimplePriorities(Thread.MAX_PRIORITY));
  47. exec.shutdown();
  48. }
  49. }

发表评论

表情:
评论列表 (有 0 条评论,279人围观)

还没有评论,来说两句吧...

相关阅读

    相关 线优先级

    现代操作系统基本采用分时的形式调度运行的线程,操作系统会分出一个个的时间片,线程会分配到若干的时间片,当线程的时间片用完就会发生线程,并等待下次分配。线程分配到的时间片多少也就

    相关 线优先级

    1、概述: 多线程的执行时抢占式执行,人为不能绝对控制线程的执行顺序,在开发的时候有些线程需要尽量的靠前执行,人为可以采用手段去影响线程执行顺序,这种手段成为是线程优先级