zoukankan      html  css  js  c++  java
  • java线程执行的优先级

    1.1      线程的优先级

    java 中的线程优先级的范围是1~10,默认的优先级是5。10极最高。

    有时间片轮循机制。“高优先级线程”被分配CPU的概率高于“低优先级线程”。根据时间片轮循调度,所以能够并发执行。无论是是级别相同还是不同,线程调用都不会绝对按照优先级执行,每次执行结果都不一样,调度算法无规律可循,所以线程之间不能有先后依赖关系。

    无时间片轮循机制时,高级别的线程优先执行,如果低级别的线程正在运行时,有高级别线程可运行状态,则会执行完低级别线程,再去执行高级别线程。如果低级别线程处于等待、睡眠、阻塞状态,或者调用yield()函数让当前运行线程回到可运行状态,以允许具有相同优先级或者高级别的其他线程获得运行机会。因此,使用yield()的目的是让相同优先级的线程之间能适当的轮转执行。但是,实际中无法保证yield()达到让步目的,因为让步的线程还有可能被线程调度程序再次选中。结论:yield()从未导致线程转到等待/睡眠/阻塞状态。在大多数情况下,yield()将导致线程从运行状态转到可运行状态,但有可能没有效果。

    优先级测试程序:

    package com.first;

    public class ThreadPriority
    {
        public static void main(String[] args) {

            System.out.println(Thread.currentThread().getName()
                    +"("+Thread.currentThread().getPriority()+ ")");

            Thread t1=new ThreadP("thread1");    // 新建t1
            Thread t2=new ThreadP("thread2");    // 新建t2
            t1.setPriority(5);               // 设置t1的优先级为1
            t2.setPriority(5);              // 设置t2的优先级为10
            t1.start();                      // 启动t1
            t2.start();                      // 启动t2
        }

    }
    class ThreadP extends Thread{

        public ThreadP(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);
            }
        }

    }

    运行结果如下:

    main(5)

    thread2(10), loop 0

    thread1(1), loop 0

    thread2(10), loop 1

    thread2(10), loop 2

    thread2(10), loop 3

    thread2(10), loop 4

    thread1(1), loop 1

    thread1(1), loop 2

    thread1(1), loop 3

    thread1(1), loop 4

     

     

    自己编了一个股票监控软件,有如下功能,有兴趣的朋友可以下载;

    (1)   个股监测。监测个股实时变化,可以监测个股大单交易、急速拉升和下降、主力入场和出场、股票最高点和最低点提醒。检测到最高点、最低点、主力进场点、主力退场点、急速拉升点、急速下跌点,给出语音或者声音提醒,不用再时刻看着大盘了,给你更多自由的时间;

    (2)   大盘监测。监测大盘的走势,采用上证、深证、创业三大指数的综合指数作为大盘走势。并实时监测大盘的最高点和最低点、中间的转折点。

    (3)   股票推荐。还能根据历史数据长期或短期走势进行分析,对股市3千多个股票进行分析对比,选出涨势良好的股票,按照增长速度从大到小排序,推荐给你涨势良好的股票;

    下载地址:

    1.0.3版本(修复大盘指数崩溃缺陷)下载地址:

    链接:https://pan.baidu.com/s/1BJcTp-kdniM7VE9K5Kd3vg 提取码:003h

    更新链接:

    https://www.cnblogs.com/bclshuai/p/10621613.html

  • 相关阅读:
    <转> 解决异常:IllegalStateException: Fragment <ThisFragment> is not currently in the FragmentManager
    带你走进Android Afinal框架的世界
    Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现
    Myeclipse启动不了的解决方法
    select 禁止 选择
    jquery的clone方法应用于textarea和select的bug修复不能copy值,clone id重复的解决
    玩javaweb的web.xml编译路径
    程序员笔记之设计(一)
    Eclipse清除SVN密码
    Java 最简单的批处理
  • 原文地址:https://www.cnblogs.com/bclshuai/p/10245165.html
Copyright © 2011-2022 走看看