java线程组threadgroup学习与总结

java线程组threadgroup学习与总结

ID:8965426

大小:16.68 KB

页数:2页

时间:2018-04-13

java线程组threadgroup学习与总结_第1页
java线程组threadgroup学习与总结_第2页
资源描述:

《java线程组threadgroup学习与总结》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、线程组ThreadGroup学习与总结在Java中每个线程都属于某个线程组(ThreadGroup)。例如,如果在main()中产生一个线程,则这个线程属于main线程组管理的一员,您可以使用下面的指令来获得目前线程所属的线程组名称:Thread.currentThread().getThreadGroup().getName();一个线程产生时,都会被归入某个线程组,视线程是在哪个线程组中产生而定。如果没有指定,则归入产生该子线程的线程组中。您也可以自行指定线程组,线程一旦归入某个组,就无法更换组。java.lang.ThreadGroup类正如

2、其名,可以统一管理整个线程组中的线程,您可以使用以下方式来产生线程组,而且一并指定其线程组:ThreadGroupthreadGroup1=newThreadGroup("group1");ThreadGroupthreadGroup2=newThreadGroup("group2");Threadthread1=newThread(threadGroup1,"group1'smember");Threadthread2=newThread(threadGroup2,"group2'smember");    ThreadGroup中的某些方法,可

3、以对所有的线程产生作用,例如interrupt()方法可以interrupt线程组中所有的线程,setMaxPriority()方法可以设置线程组中线程所能拥有的最高优先权(本来就拥有更高优先权的线程不受影响)。   如果想要一次获得线程组中所有的线程来进行某种操作,可以使用enumerate()方法,例如:Thread[]threads=newThread[threadGroup1.activeCount()];threadGroup1.enumerate(threads);   ThreadGroup中有一个uncaughtException(

4、)方法。当线程组中某个线程发生Uncheckedexception异常时,由执行环境调用此方法进行相关处理,如果有必要,可以重新定义此方法,请看下面的示例。packageonlyfun.caterpillar;publicclassThreadGroupDemo{publicstaticvoidmain(String[]args){ThreadGroupthreadGroup1=//这是匿名类写法newThreadGroup("group1"){//继承ThreadGroup并重新定义以下方法//在线程成员抛出uncheckedexception/

5、/会执行此方法publicvoiduncaughtException(Threadt,Throwablee){System.out.println(t.getName()+":"+e.getMessage());}};//这是匿名类写法Threadthread1=//这个线程是threadGroup1的一员newThread(threadGroup1,newRunnable(){publicvoidrun(){//抛出unchecked异常thrownewRuntimeException("测试异常");}});thread1.start();}}

6、 在uncaughtException()方法的参数中,第一个参数可以获得发生异常的线程实例,而第二个参数可以获得异常对象,范例中显示了线程的名称及异常信息。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。