java 多线程 优先级_java多线程之线程的优先级

在操作系统中,线程可以划分优先级,优先级较高的线程得到CPU资源较多,也就是CPU优先执行优先级较高的线程对象中的任务(其实并不是这样)。

在java中,线程的优先级用setPriority()方法就行,线程的优先级分为1-10这10个等级,如果小于1或大于10,则抛出异常throw new IllegalArgumentException(),默认是5。

public class MyThread1 extends Thread {

@Override

public void run() {

long startTime=System.currentTimeMillis();

long addResult=0;

for (int i = 0; i < 1000000; i++) {

new Random().nextInt();

addResult+=i;

}

long endTime=System.currentTimeMillis();

System.out.println("thread1 use time--->"+(endTime-startTime));

}

}

public class MyThread2 extends Thread {

@Override

public void run() {

long startTime=System.currentTimeMillis();

long addResult=0;

for (int i = 0; i < 1000000; i++) {

new Random().nextInt();

addResult+=i;

}

long endTime=System.currentTimeMillis();

System.out.println("thread2 use time--->"+(endTime-startTime));

}

}

public class MyThread{

public static void main(String[] args){

for (int i = 0; i < 5; i++) {

MyThread1 t1=new MyThread1();

t1.setPriority(10);

t1.start();

MyThread2 t2=new MyThread2();

t2.setPriority(1);

t2.start();

}

}

}

fe81abf16de57ac009d2e52ee1bde51f.png

从结果中可以发现,也有thread2比thread1先执行完,也就验证了线程的优先级于代码执行顺序无关。

public class MyThread{

public static void main(String[] args){

for (int i = 0; i < 5; i++) {

MyThread1 t1=new MyThread1();

t1.setPriority(6);

t1.start();

MyThread2 t2=new MyThread2();

t2.setPriority(5);

t2.start();

}

}

dbc3c30fb50294d59f078990c8178d32.png

如果我们把优先级设置近点的话,发现优先级较高的线程不一定没一次都执行完,线程的优先级与打印的顺序无关,不要将这两点的关系相关联,他们的关系是不确定性和随机性。

线程的优先级仍然无法保障线程的执行次序。只不过,优先级高的线程获取CPU资源的概率较大,优先级低的并非没机会执行。

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/news/279158.shtml
繁体地址,请注明出处:http://hk.pswp.cn/news/279158.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PyQt5应用与实践

2015-01-16 19:00 by 吴秦, 69476 阅读, 5 评论, 收藏, 编辑 一个典型的GUI应用程序可以抽象为&#xff1a;主界面&#xff08;菜单栏、工具栏、状态栏、内容区域&#xff09;&#xff0c;二级界面&#xff08;模态、非模态&#xff09;&#xff0c;信息提示&#xff08;Toolti…

plex实现流媒体服务器_Plex继续远离服务器,提供网络节目

plex实现流媒体服务器() Plex now offers a “Web Shows” feature in certain versions of their interface, providing access to shows from brands like TWiT, GQ, and Popular Science. Plex现在在其界面的某些版本中提供了“网络节目”功能&#xff0c;可以访问TWiT&…

MIME协议(三) -- MIME邮件的组织结构

一封MIME邮件可以由多个不同类型的MIME消息组合而成&#xff0c;一个MIME消息表示邮件中的一个基本MIME资源或若干基本MIME消息的组合体。每个MIME消息的数据格式与RFC822数据格式相似&#xff0c;也包括头和体两部分&#xff0c;分别称为MIME消息头和MIME消息体&#xff0c;它…

discord linux_最好的Discord机器人来启动服务器

discord linuxDiscord has an extensive API and good support for bots on their platform. Because of this, there are tons of bots to go around. However, many of them just copy one another’s functionality. We’ve picked out the ones that do it right, and comp…

java获取前端json数据_java如何获取前端ajax传来的json对象

假设使用 jQuery 中的 ajax1. Json 对象前端代码示例$.ajax({url : http://localhost:8888/demo,type: post,data: {userName:15488779956}success: function(data) {// TODO}})后台代码示例RestControllerpublic class Demo {/*** 方法 1 使用 HttpServletRequest 接收* */Req…

版本控制介绍以及常用的版本控制工具

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理&#xff0c;是软件配置管理的核心思想之一。 编写一个成熟可用的程序是一个工作量很大的工程&#xff0c;并非我们一次性就可以搞定的工作&#xff0c;所以在开发过程当中需要&#xff1a; 1、 …

2019年4月第四周_2012年4月最佳怪胎文章

2019年4月第四周This past month we covered topics such as how to use a 64-bit web browser on Windows, the best tips and tweaks for getting the most out of Firefox, how to check out library books on your Kindle for free, and more. Join us as we look back at …

matlab循环遍历数组_Matlab - 访问for循环中最大值的索引,并使用它从数组中删除值...

我想递归地找到一系列矩阵中的最大值(第8列&#xff0c;具体)&#xff0c;然后使用该最大值的索引来设置数组中的所有值&#xff0c;索引最大为NaN的最大索引(对于列14:16) . 很容易找到最大值和索引&#xff0c;但是使用for循环为多个数组做这件事我很难过 .如果没有for循环&a…

【资料整理】编译安装nginx

【nginx】编译安装nginx 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311…

游荡的奶牛

沙雕题目 读错题了&#xff0c;不想多说 转载于:https://www.cnblogs.com/bullshit/p/9811058.html

物体成瘾性_科技成瘾使我们不那么快乐。 那是一个市场机会。

物体成瘾性Compulsively checking social networks makes us less happy. I think we all understand this intuitively, the same way we understand that working out more and eating better is a good idea. 强迫检查社交网络使我们不那么开心。 我认为我们所有人都可以凭直…

mysql 不要统计null_浅谈为什么Mysql数据库尽量避免NULL

在Mysql中很多表都包含可为NULL(空值)的列&#xff0c;即使应用程序并不需要保存NULL也是如此&#xff0c;这是因为可为NULL是列的默认属性。但我们常在一些Mysql性能优化的书或者一些博客中看到观点&#xff1a;在数据列中&#xff0c;尽量不要用NULL 值&#xff0c;使用0&…

Swing学习1——总体概述

以下来自于JDK1.6 一、Swing学习我划分为两个方面&#xff1a; 一方面Swing的界面设计部分&#xff0c;包括相关组件类的继承关系&#xff0c;组件的功能用途&#xff0c;布局管理&#xff1b; 1.首先继承关系上自上而下为 java.lang.Object java.awt.Component java.awt.Conta…

装饰设计模式和例题

文件复制程序&#xff1a; 将一个文件复制一份出来&#xff0c;实现方法很简单&#xff0c;使用FileInputStream读取文件内容&#xff0c;然后使用FileOutputStream写入另一个文件&#xff0c;利用read方法的返回值作为while循环的条件&#xff0c;进行一边读一边写。 代码示例…

mysql操作手册我_MySQL使用指南一

我将MySQL常用指令整理出来分享给大家。1. 列出所有数据库mysql> show databases;2. 创建数据库mysql> create databases MyStorage;3. 打开数据库mysql> use MyStorage;4. 创建表mysql> create table Storage-> (-> id int,-> name varchar(50),-> pr…

谷歌地图将很快显示电动汽车充电站

If you’re out on the road in the future and find your electric vehicle is in dire need of a charge, you’ll soon be able to look to Google Maps for help finding a charging station. 如果您将来出门在外&#xff0c;并且发现您的电动汽车急需充电&#xff0c;那么…

JS4

1. js的本质就是处理数据。数据来自于后台的数据库。 所以变量就起到一个临时存储数据的作用。 ECMAScript制定了js的数据类型。 数据类型有哪些&#xff1f; 字符串 String数字 Number布尔 BooleanNull 空Undefined Object 对象Array 数组 json function …

ovirt官方安装文档 第三章

第3章&#xff1a;安装oVirt 安装oVirt引擎包 在您可以配置和使用oVirt引擎之前&#xff0c;您必须安装 rhevm 包和依赖关系。 安装oVirt引擎包 在开始安装oVirt之前&#xff0c;添加官方仓库&#xff1a; # yum install http://resources.ovirt.org/pub/yum-repo/ovirt-releas…

mysql获取查询策略语句_MySQL数据库查询性能优化策略

优化查询使用Explain语句分析查询语句Explain 用来分析 SELECT 查询语句&#xff0c;开发人员可以通过分析 Explain 结果来优化查询语句。通过对查询语句的分析,可以了解查询语句的执行情况,找出查询语句执行的瓶颈,从而优化查询语句.使用索引查询MySql中提高性能的一个最有效的…

松弛变量可以为负吗_如何为松弛安装(非官方)暗模式

松弛变量可以为负吗Slack still doesn’t have a dark mode. They have dark themes, but those only let you customize the sidebar colors, leaving the main window white. With the release of system-wide dark modes on macOS Mojave and Windows 10, Slack feels very …