免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10299 | 回复: 4
打印 上一主题 下一主题

在JAVA中怎么样能杀死线程? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-21 16:12 |只看该作者 |倒序浏览
各位大侠,我想请教关于在JAVA中杀死线程的问题.  我查过文档资料,有一个方法,但现在已不再使用了.
使用过interrupt()方法,发现不行呢
    new ClientServerThread(serverSocket1).start();
                                System.out.println("111"+th.getName());
                                System.out.println(th.getState());
                                System.out.println("222"+th.getName());
                                System.out.println(th.isInterrupted());
                                th.interrupt();
                                System.out.println(th.isInterrupted());
                                System.out.println("333"+th.getName());
                                System.out.println(th.getState());
                    System.out.println(th.getName());
输出结果:
111Thread-0
RUNNABLE
222Thread-0
false
true
333Thread-0
RUNNABLE
Thread-0
看情况是没杀死吧.

论坛徽章:
0
2 [报告]
发表于 2006-09-21 16:15 |只看该作者

在JAVA中怎么样能杀死线程?

在LINUX下杀进程到是容易,一个KILL命令就完了.在JAVA中有什么方法呢?可以杀死线程,还有怎么样能杀死进程呢?这个我也不知道.

论坛徽章:
0
3 [报告]
发表于 2006-09-21 17:00 |只看该作者
原帖由 link-112233 于 2006-9-21 16:15 发表
在LINUX下杀进程到是容易,一个KILL命令就完了.在JAVA中有什么方法呢?可以杀死线程,还有怎么样能杀死进程呢?这个我也不知道.

interrupt()只是在Thread的处于blocked时候会有Exception通知Thread,而你可以在处理这个Exception时退出run()的method。
如果不处于blocked,它仅仅是标记一下Thread的interrupte状态,thread还是继续执行。

论坛徽章:
0
4 [报告]
发表于 2006-09-22 00:26 |只看该作者
楼上:再次调用sleep()的时候自动恢复interrupte状态,还是状态不能再改变?

论坛徽章:
0
5 [报告]
发表于 2006-09-22 09:10 |只看该作者
原帖由 ruknow 于 2006-9-22 00:26 发表
楼上:再次调用sleep()的时候自动恢复interrupte状态,还是状态不能再改变?

由于interrupte()调用且thread并不处于blocked时,状态被置为true以后。之后,若thread调用会引起其进入blocked的方法,会进入InterruptedException处理代码。同时状态被置为false。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP