Java线程组ThreadGroup学习与总结.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
线程组 ThreadGroup 学习与总结 在 Java 中每个线程都属于某个线程组(ThreadGroup)。例如,如果在 main()中产生一个线程,则这个线程属于 main 线程组管理的一员,您可以使用下面的指令来获得目前线程所属的线程组名称: Thread.currentThread().getThreadGroup().getName(); Thread.currentThread().getThreadGroup().getName(); 一个线程产生时,都会被归入某个线程组,视线程是在哪个线程组中产生而定。如果没有指定,则归入产生该子线程的线程组中。您也可以自行指定线程组,线程一旦归入某个组,就无法更换组。java.lang.ThreadGroup 类正如其名,可以统一管理整个线程组中的线程,您可以使用以下方式来产生线程组,而且一并指定其线程组: ThreadGroupthreadGroup1=newThreadGroup(group1); ThreadGroupthreadGroup2=newThreadGroup(group2); Threadthread1=newThread(threadGroup1,group1smember); Threadthread2=newThread(threadGroup2,group2smember); ThreadGroupthreadGroup1=newThreadGroup(group1); ThreadGroupthreadGroup2=newThreadGroup(group2); Threadthread1=newThread(threadGroup1,group1smember); Threadthread2=newThread(threadGroup2,group2smember); ThreadGroup 中的某些方法,可以对所有的线程产生作用,例如 interrupt()方法可以 interrupt 线程组中所有的线 程,setMaxPriority()方法可以设置线程组中线程所能拥有的最高优先权(本来就拥有更高优先权的线程不受影响)。 如果想要一次获得线程组中所有的线程来进行某种操作,可以使用 enumerate()方法,例如: Thread[]threads=newThread[threadGroup1.activeCount()]; threadGroup1.enumerate(threads); Thread[]threads=newThread[threadGroup1.activeCount()]; threadGroup1.enumerate(threads); ThreadGroup 中有一个 uncaughtException()方法。当线程组中某个线程发生 Unchecked exception 异常时,由执行环境调用此方法进行相关处理,如果有必要,可以重新定义此方法,请看下面的示例。 package packageonlyfun .caterpillar; public class ThreadGroupDemo { public static void main(String[]args ) { ThreadGroupthreadGroup1 = // 这是匿名类写法 new ThreadGroup(group1) { // 继承ThreadGroup并重新定义以下方法 // 在线程成员抛出uncheckedexception // 会执行此方法 public void uncaughtException(Threadt , Throwablee ) { System System.out.println(t.getName() + : +e .getMessage()); } }; // 这是匿名类写法 Threadthread1 = // 这个线程是threadGroup1的一员 new Thread(threadGroup1, new Runnable() { public void run() { // 抛出unchecked异常 throw new RuntimeException(测试异常); } }); thread1.start(); } } 在 uncaughtException()方法的参数中,第一个参数可以获得发生异常的线程实例,而第二个参数可以获得异常对象,范例中显示了线程的名称及异常信息。

文档评论(0)

hao187 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体武汉豪锦宏商务信息咨询服务有限公司
IP属地上海
统一社会信用代码/组织机构代码
91420100MA4F3KHG8Q

1亿VIP精品文档

相关文档