zoukankan      html  css  js  c++  java
  • java多线程优先级问题

    java 中的线程优先级的范围是1~10,默认的优先级是5。“高优先级线程”会优先于“低优先级线程”执行。

    例子:

    package com.ming.thread.threadpriority;
    
    public class MyThread extends Thread {
    
        public MyThread(String name) {
            super(name);
        }
    
        public void run() {
            for (int i = 0; i < 5; i++) {
                System.out.println(Thread.currentThread().getName() + "(" + Thread.currentThread().getPriority() + ")"+ ", loop " + i);
            }
        }
    }
    package com.ming.thread.threadpriority;
    
    /**
     * 线程的优先级的值是1--10
     * @author ming
     *
     */
    
    public class Run {
    
        public static void main(String[] args) {
            MyThread t1=new MyThread("t1");
            MyThread t2=new MyThread("t2");
            MyThread t3=new MyThread("t3");
            t1.setPriority(6);
            t2.setPriority(Thread.MAX_PRIORITY);
            t3.setPriority(1);
            t1.start();
            t2.start();
            t3.start();
        }
    }

    不要把线程的优先级与运行结果的顺序作为衡量的标准,优先级较高的线程并不一定每一次都先执行完run()方法中的任务,也就是说,线程的优先级与打印顺序无关,不要将这两者的关系相关联,它们的关系具有不确定性和随机性。

  • 相关阅读:
    rpm常见命令使用说明
    终端传值给Makefile、Makefile传值给C++代码
    redis实现异步队列
    redis实现分布式锁
    正则表达式
    nginx安装
    metaq
    zeromq
    ActiveMq
    http压力测试
  • 原文地址:https://www.cnblogs.com/huzi007/p/7088988.html
Copyright © 2011-2022 走看看