线程中止

线程终止

不正确的线程终止-stop

stop:终止线程,并且清除监视器锁的信息,但是可能导致线程安全问题

destroy:jdk未实现该方法

stop无法响应中断,使用interrupt方法

错误代码示例:

正确的线程终止-interrupt

如果目标线程在调用Object class的wait()、wait(long)或wait(long,int)方法、join()方法、join(long,int)或sleep(long,int)方法时被阻塞,那么interrupt会生效,该线程的中断状态将被清楚,抛出interruptedException异常。

如果目标线程是被i/o或者NIO中的channel所阻塞,同样,i/o操作会被中断或者返回特殊异常值。达到终止线程的目的。

如果以上条件都不满足,则会设置此线程的中断状态。

代码示例:

正确的线程终止-标志位

代码逻辑中,添加一个判断标志位,用来控制线程的终止。

代码示例:


   转载规则


《线程中止》 keyj 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
线程通信 线程通信
一、通信方式要想实现多个线程之间的协同,如:线程执行先后顺序、获取某个线程执行的结果等等。 涉及到线程之间相互通信,分为下面四类: 文件共享 网络共享 共享变量 jdk提供的线程协调API 细分为:suspend/resume、wa
2019-06-18 keyj
下一篇 
kafka kafka
简介一、简介linkedin公司出品,使用scala(spark也是基于此语言)编写,具有高水平扩展和高吞吐量的分布式消息系统。 kafka对消息保存根据topic进行分类,集群中实例称之为broker。发送消息者为producer,消息接
2019-06-17 keyj
  目录