• 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()方法中的任务,也就是说,线程的优先级与打印顺序无关,不要将这两者的关系相关联,它们的关系具有不确定性和随机性。

  • 相关阅读:
    判断ImageIcon创建成功
    Node中的explorer views的双击事件
    Oracle数据类型
    Sql三种行转列
    数据库迁移
    并发采集同一站点被封的解决方案
    .net获取版本号的三种方法
    List转DataSet
    Orcale自增长主键
    python学习笔记数字和表达式
  • 原文地址:https://www.cnblogs.com/huzi007/p/7088988.html
Copyright © 2020-2023  润新知