• JAVA并发,线程优先级


     1 package com.xt.thinks21_2;
     2 
     3 import java.util.concurrent.ExecutorService;
     4 import java.util.concurrent.Executors;
     5 
     6 /**
     7  * java线程优先级测试
     8  * 
     9  * @author Administrator
    10  *
    11  */
    12 public class ThreadPriorityTest implements Runnable {
    13     private int countDown = 5;
    14     private int priority;
    15     private volatile double d;
    16 
    17     public ThreadPriorityTest(int priority) {
    18         this.priority = priority;
    19     }
    20 
    21     @Override
    22     public String toString() {
    23         // TODO Auto-generated method stub
    24         return Thread.currentThread() + ":" + countDown;
    25     }
    26 
    27     @Override
    28     public void run() {
    29         // TODO Auto-generated method stub
    30         Thread.currentThread().setPriority(priority);
    31         while (true) {
    32             for (int i = 0; i < 10000000; i++) {
    33                 d += (Math.PI + Math.E) / (double) i;
    34                 if (i % 1000 == 0)
    35                     Thread.yield();
    36             }
    37             System.out.println(this);
    38             if (--countDown == 0)
    39                 return;
    40         }
    41     }
    42 
    43     public static void main(String[] args) {
    44         ExecutorService es = Executors.newCachedThreadPool();
    45         for (int i = 0; i < 5; i++)
    46             es.execute(new ThreadPriorityTest(Thread.MIN_PRIORITY));
    47         es.execute(new ThreadPriorityTest(Thread.MAX_PRIORITY));
    48         es.shutdown();
    49     }
    50 }

    线程内部执行耗时操作的时候,设置线程优先级可以有效的调整线程执行顺序(无规律)。

  • 相关阅读:
    循环链表结构
    复杂的权衡之时间、空间和单链表结构
    单链表操作之删除
    单链表操作之插入
    单链表操作之替换
    单链表操作之搜索
    文件系统的原理
    类加载的三种方式比较
    shell中awk printf的用法
    推荐网站
  • 原文地址:https://www.cnblogs.com/wubingshenyin/p/4445830.html
Copyright © 2020-2023  润新知