• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >Java > Java 多线程优先级实例详解

Java 多线程优先级实例详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了java多线程详解,java线程池详解,java线程详解,java多线程编程详解,java中的线程详解等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Java 多线程优先级实例详解

线程的优先级将该线程的重要性传递给调度器。尽管CPU处理现有线程集的顺序是不确定的,但是调度器将倾向于让优先权最高的线程先执行。

你可以用getPriority()来读取现有线程的优先级,并且在任何时刻都可以通过setPriority()来修改优先级。

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class SimplePriorities implements Runnable {

  private int countDown = 5;

  /*Java语言规范第三版中对volatile的定义如下: java编程语言允许线程访问共享变量,
  为了确保共享变量能被准确和一致的更新,线程应该确保通过排他锁单独获得这个变量。
  Java语言提供了volatile,在某些情况下比锁更加方便。如果一个字段被声明成volatile,
  java线程内存模型确保所有线程看到这个变量的值是一致的。*/
  private volatile double d;
  private int priority;

  public SimplePriorities(int priority){
    this.priority = priority;
  }

  public String toString(){
    //获取当前线程信息
    return Thread.currentThread() + ":" + countDown;
  }

  @Override
  public void run() {
    //设置线程优先级 1-10
    Thread.currentThread().setPriority(priority);

    while(true){

      for(int i = 0;i<100000;i++){
        d += (Math.PI + Math.E) / (double)i;
        if(i00 == 0){
          Thread.yield();
        }
      }
      System.out.println(this.toString());

      if(--countDown == 0)return;

    }

  }

  public static void main(String[] args) {


    ExecutorService exec = Executors.newCachedThreadPool();

    //优先级为1
    exec.execute(new SimplePriorities(Thread.MIN_PRIORITY));
    //优先级为10
    exec.execute(new SimplePriorities(Thread.MAX_PRIORITY));

    exec.shutdown();
  }

}

</div>

toString()方法被覆盖,以便使用Thread.toString()方法来打印线程的名称,线程的优先级以及线程所属的“线程组”。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • Java 回调函数详解及使用
  • java 同步器SynchronousQueue详解及实例
  • Java可变参数列表详解
  • Java中终止线程的方法详解
  • Java中的对象和引用详解
  • java回调机制实例详解
  • Java多线程中线程间的通信实例详解
  • Java实现一个达达租车系统的步骤详解
  • Java内存分布归纳整理详解
  • Java 线程优先级详解及实例

相关文章

  • 2017-05-28Java编程实现从给定范围内随机N个不重复数生成随机数的方法小结
  • 2017-05-28详解spring多线程与定时任务
  • 2017-07-23Java中的Scanner简述(企业笔试在线编程的输入控制)
  • 2017-05-28Java线程同步、同步方法实例详解
  • 2017-05-28动力节点_王勇_DRP项目视频教程完整版292集
  • 2017-05-28Java操作另一个Java程序使其重启的简单实现
  • 2017-05-28详解Java单元测试Junit框架实例
  • 2017-05-28Spring多种加载Bean方式解析
  • 2017-05-28jstl之map,list访问遍历以及el表达式map取值的实现
  • 2017-05-28springMvc注解之@ResponseBody和@RequestBody详解

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • HashSet工作原理_动力节点Java学院整理
    • java利用delayedQueue实现本地的延迟队列
    • 详解Spring 框架中切入点 pointcut 表达式的常用写法
    • 二维码生成Java实现代码
    • SpringBoot的服务注册与发现示例
    • Java初学者常问的问题(推荐)
    • 详解springboot + profile(不同环境读取不同配置)
    • Java IO中字节流复制图片实现代码
    • JVM 方法调用之静态分派(详解)
    • Spring Boot下的Job定时任务

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有