• 线程的优先级


    线程的优先级

      线程的优先级说明在程序中该线程的重要性。系统会根据优先级决定首先使用哪个线程,但这并不意味着优先级低的线程得不到运行,只是它运行的几率比较小而已,比如垃圾回收机制。

    方法setPriority("",5,threadA);

    每个新的线程都继承了父线程的优先级。Thread.MIN_PRIORITY(1)---Thread.MAN_PRIORITY(10)------Thread.NORM_PRIOITY(5)优先级在1---10之间。

    在多任务的操作系统中,每个线程都会得到一小段CPU时间片运行,在时间结束时,将轮换另一个线程进入运行状态,这时系统会选择与当前线程优先级相同的线程予以运行。

    系统始终选择优先级较高的线程进入运行状态。

    代码:

    setPriority.java

    package com;
    
    public class setPriority extends Thread {
    
        public setPriority(String name) {
            super(name);
            // TODO Auto-generated constructor stub
        }
        @Override
        public void run() {
            System.out.println(getName());
            }
        }
    
    }

     

    App.java

    package com;
    
    import java.util.ArrayList;
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.ExecutorService;
    import java.util.concurrent.Executors;
    import java.util.concurrent.Future;
    
    
    public class App {
    
        public App() throws InterruptedException, ExecutionException {
    
            setPriority a = new setPriority("11111");
            setPriority b = new setPriority("22222");
            setPriority c = new setPriority("33333");
            setPriority d = new setPriority("44444");
            setPriority e = new setPriority("55555");
    
            a.setPriority(7); //设置优先级
            b.setPriority(1);
            c.setPriority(7);
            d.setPriority(4);
            e.setPriority(5);
            a.start();
            b.start();
            c.start();
            d.start();
            e.start();
        }
        public static void main(String[] args) throws InterruptedException, ExecutionException {
            new App();
        }
    }

    运行结果:

    但是吧,你的运行结果不一定和我的一样,因为这个吧每个人的电脑不一样,而且每次运行的状态也不一样。会用就好啦~~

  • 相关阅读:
    综述:设计模式的分类及六大原则
    模板方法模式
    工厂模式三部曲之抽象工厂模式
    AI,DM,ML,PR的区别与联系
    delphi ADOCONNECTION异常拦截
    Delphi 10.2.3 精简版自动激活Embarcadero Delphi 10.2.3 v25.0.29899.2631 Lite v14.4
    Delphi使用TADOQuery的RowsAffected属性时需要注意的一个点
    delphi 新版内存表 FDMemTable
    delphi 中Adoquery ,在打开时能否让记录指针不移动? [问题点数:40分,结帖人microd]
    delphi循环校验数据集
  • 原文地址:https://www.cnblogs.com/cattree/p/10662873.html
Copyright © 2020-2023  润新知