首页 > 编程语言 >《Java编程思想第四版》学习笔记51--关于线程组的控制

《Java编程思想第四版》学习笔记51--关于线程组的控制

时间:2023-12-31 22:31:42浏览次数:34  
标签:PRIORITY Java Thread g1 -- list 51 sys new

//: ThreadGroup1.java
// How thread groups control priorities
// of the threads inside them.
public class ThreadGroup1 {
 public static void main(String[] args) {
 // Get the system thread & print its Info:
 ThreadGroup sys = 
 Thread.currentThread().getThreadGroup();
 sys.list(); // (1)
 // Reduce the system thread group priority:
 sys.setMaxPriority(Thread.MAX_PRIORITY - 1);
 // Increase the main thread priority:
 Thread curr = Thread.currentThread();
 curr.setPriority(curr.getPriority() + 1);
 sys.list(); // (2)
 // Attempt to set a new group to the max:
 ThreadGroup g1 = new ThreadGroup("g1");
 g1.setMaxPriority(Thread.MAX_PRIORITY);
 // Attempt to set a new thread to the max:
 Thread t = new Thread(g1, "A");
 t.setPriority(Thread.MAX_PRIORITY);
 g1.list(); // (3)
 // Reduce g1's max priority, then attempt
 // to increase it:
 g1.setMaxPriority(Thread.MAX_PRIORITY - 2);
 g1.setMaxPriority(Thread.MAX_PRIORITY);
 g1.list(); // (4)
 // Attempt to set a new thread to the max:
 t = new Thread(g1, "B");
 t.setPriority(Thread.MAX_PRIORITY);
 g1.list(); // (5)
 // Lower the max priority below the default
 // thread priority:
 g1.setMaxPriority(Thread.MIN_PRIORITY + 2);
 // Look at a new thread's priority before
 // and after changing it:
 t = new Thread(g1, "C");
 g1.list(); // (6)
 t.setPriority(t.getPriority() -1);
 g1.list(); // (7)
 // Make g2 a child Threadgroup of g1 and
 // try to increase its priority:
 ThreadGroup g2 = new ThreadGroup(g1, "g2");
 g2.list(); // (8)
 g2.setMaxPriority(Thread.MAX_PRIORITY);
 g2.list(); // (9)
 // Add a bunch of new threads to g2:
 for (int i = 0; i < 5; i++)
 new Thread(g2, Integer.toString(i));
 // Show information about all threadgroups
 // and threads:
 sys.list(); // (10)
 System.out.println("Starting all threads:");
 Thread[] all = new Thread[sys.activeCount()];
 sys.enumerate(all);
 for(int i = 0; i < all.length; i++)
 if(!all[i].isAlive())
 all[i].start();
 // Suspends & Stops all threads in 
 // this group and its subgroups:
 System.out.println("All threads started");
 sys.suspend(); // Deprecated in Java 1.2
 // Never gets here...
 System.out.println("All threads suspended");
 sys.stop(); // Deprecated in Java 1.2
 System.out.println("All threads stopped");
 }
} ///:~

 P.527的这个例程运行结果和书上的不一致,不知道是什么原因。

标签:PRIORITY,Java,Thread,g1,--,list,51,sys,new
From: https://blog.51cto.com/u_16183536/9050961

相关文章

  • 将linux的manpages换成中文
    一种解决方法:https://blog.csdn.net/qq_23274715/article/details/104710448具体方法ubuntu:1、安装软件包sudoaptupdatesudoaptinstallmanpages-zh.使用此命令安装中文manpages库。2、查看中文包的安装路径dpkg-Lmanpages-zh使用此命令查看manpages-zh库......
  • 2023-2024-1 20231410《计算机基础与程序设计》第14周学习总结
    2023-2024-120231410《计算机基础与程序设计》第14周学习总结作业信息这个作业属于哪个课程(https://edu.cnblogs.com/campus/besti/2023-2024-1-CFAP)这个作业要求在哪里(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK13)这个作业的目标自学教材《C语言程......
  • 解决gradle下载失败
    解决网络等问题导致AndroidStudio下载Gradle失败腾讯镜像:https://mirrors.cloud.tencent.com/gradle/阿里镜像:https://mirrors.aliyun.com/gradle/选择以上镜像,下载项目对应版本gradle.zip#切换到gradle目录cd/Users/用户名/.gradle/wrapper/dists如下图所示找到......
  • 【scikit-learn基础】--『监督学习』之 支持向量机回归
    在机器学习中,支持向量机(SupportVectorMachine)算法既可以用于回归问题,也可以用于分类问题。支持向量机(SVM)算法的历史可以追溯到1963年,当时前苏联统计学家弗拉基米尔·瓦普尼克(VladimirN.Vapnik)和他的同事阿列克谢·切尔沃宁基斯(AlexeyYa.Chervonenkis)提出了支持向量机的概念......
  • 代码随想录 小结01 数组
    数组篇一共有五个题目第一题二分查找值得注意的是,要自己想好区间的边界到底是写左闭右开还是左闭右闭根据边界不同while的条件和左右指针的移动会有差别目前我的习惯是写左闭右开还是固定一下习惯比较好第二题是实现数组类的erase()使用快慢指针可以做到在数组原地进......
  • 浅谈一类状态转移依赖邻项的排列计数问题 - 连续段 dp
    UPD2023.12.31:失手把原来的博文删掉了,这篇是补档。引入在一类序列计数问题中,状态转移的过程可能与相邻的已插入元素的具体信息相关(e.g.插入一个新元素时,需要知道与其插入位置相邻的两个元素的值是多少,才可进行状态转移,如「JOIOpen2016」摩天大楼)。这类问题通常的特点是,如......
  • 10.基于模型的测试方法 Model-based Testing
    Model-basedTesting介绍 Model-basedTestingisanapplicationofmodel-baseddesignfordesigningandoptionallyalsoexecutingartifactstoperformsoftwaretestingorsystemtesting.Modelscanbeusedtorepresentthedesiredbehaviorofasystemu......
  • 鲜花 09
    \(17\)是第三个费马素数(\(=2^{2^2}+1\)),也是Miller-Rabin算法常用底数之一,且此底数很强。如果害怕自己过不去就加上这个底数,然后大概率都是对的。现行的几个能完美判断所有\(2^{63}-1\)以内数字的底数中大多数都包含\(17\)。\(17\)是一个素数。神奇的是,去掉首位他还是一个......
  • 2023-2024-1 20231309 《计算机基础与程序设计》第十四周学习总结
    2023-2024-120231309《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十四周作业这个作业的目标自学教材《C语言程序设计》第13章并完成云班课测......
  • jarvisoj_level3_x64
    jarvisoj_level3_x6464位libc泄露漏洞函数中存在溢出使用溢出泄露libc构造payload获得shellrbppadding0x800x8pop_rdiret0x00000000004006b30x1poppop_rsiret0x00000000004006b1write_gotpop_rsielf.got['write']没......