多线程之线程优先级
发布日期:2022-04-11 08:52:48 浏览次数:5 分类:博客文章

本文共 1398 字,大约阅读时间需要 4 分钟。

优先级priority:当线程需要竞争CPU资源时,优先级高的能分配更多的CPU资源

现今操作系统基本采用分时的形式调度运行的线程,线程分配得到时间片的多少决定了线程使用处理器资源的多少,也对应了线程优先级这个概念。

分时调度:所有线程轮流使用 CPU 的使用权,平均分配每个线程占用 CPU 的时间。

在JAVA线程中,通过一个int priority来控制优先级,范围为1-10,其中10最高,默认值为5

public class Demo10Priority {  public static void main(String[] args) {    PrioritytThread prioritytThread = new PrioritytThread();    // 如果8核CPU处理3线程,无论优先级高低,每个线程都是单独一个CPU执行,就无法体现优先级    // 开启10个线程,让8个CPU处理,这里线程就需要竞争CPU资源,优先级高的能分配更多的CPU资源    for (int i = 0; i < 10; i++) {      Thread t = new Thread(prioritytThread, "线程" + i);      if (i == 1) {        t.setPriority(10);     }      if (i == 2) {        t.setPriority(1);     }      t.setDaemon(true); // 设置用户线程为守护线程,即主线程停止,用户线程也停止      t.start();   }    try {      Thread.sleep(1000l);   } catch (InterruptedException e) {      e.printStackTrace();   }    System.out.println("线程1总计:" + PrioritytThread.count1);    System.out.println("线程2总计:" + PrioritytThread.count2); }  static class PrioritytThread implements Runnable {    public static Integer count1 = 0;    public static Integer count2 = 0;    public void run() {      while (true) {        if ("线程1".equals(Thread.currentThread().getName())) {          count1++;       }        if ("线程2".equals(Thread.currentThread().getName())) {          count2++;       }        if (Thread.currentThread().isInterrupted()) {          break;       }     }   } }}

结果如下:

线程1总计:80536263线程2总计:3173022

 

转载地址:https://www.cnblogs.com/zwh0910/p/15868162.html 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:多线程之线程停止
下一篇:多线程之生产者消费者问题

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年03月27日 14时57分25秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

java typedarray_TintTypedArray.java 2019-04-21
java字符字面量_java – 字符串字面量的行为是令人困惑的 2019-04-21
php判断数组的值是否为空,PHP判断数组是否为空的常用方法(五种方法) 2019-04-21
php 读数据库,PHP数据库 2019-04-21
PHP能不能下载报表,PHP生成Excel报表的方法 2019-04-21
php mht2html,PHP 处理 mht 文件 2019-04-21
rt2tr matlab,MATLAB机器人工具箱参考 2019-04-21
MATLAB中GUI界面弹出菜单的使用,Matlab GUIDE使用说明(Matlab GUI界面) 2019-04-21
win iis对比apache php,服务器Apache与IIS的区别 2019-04-21
怎样用xampp测试php环境变量,使用xampp配置php运行环境的方法 2019-04-21
qq互联php教程,thinkphp5怎么整合qq互联登录教程 2019-04-21
Java怎么比较4数字大小,怎么判断四个数不成比例-判断4个数值相等-数学-古残夷同学... 2019-04-21
mysql建立索引 性能测试_MySQL分区和索引性能测试 2019-04-21
数据结构java实验 刘小晶_数据结构实例解析与实验指导:Java语言描述 2019-04-21
java实现 k nn算法_java-C中的k-NN示例问题(OpenCV) 2019-04-21
java接口的理解_Java接口的理解 - rabbit_mom的个人空间 - OSCHINA - 中文开源技术交流社区... 2019-04-21
java重用名快捷键_Eclipse 最常用的 10 组快捷键,个个牛逼! 2019-04-21
java中类加载根路径_java中获取类加载路径和项目根路径的5种方法 2019-04-21
Java套接字传文件_Java通过套接字传输多个文件 2019-04-21
递归字符串逆序 java_在Java中使用递归反转字符串 2019-04-21