java中怎么判断线程将要死亡(怎么得到死亡通知)?

站在巨人的肩膀上奋斗 发布于 2013/09/08 13:59
阅读 5K+
收藏 2

  在java中,怎么判断线程将要死亡或者已经死亡(或者理解为得到java线程死亡通知)?

  网上搜了下,没什么答案,哪位大神能帮我解决下?

加载中
0
Oneself丶x
Oneself丶x
线程执行完run方法就死亡了,想知道将要死亡可以在run方法最后通知你线程死亡,死亡后的线程无法得到
0
子矜
子矜
必须判断脑组织是否死亡。
0
didxga
didxga
if(thread.getState()!=Thread.State.TERMINATED){ }
0
五杀联盟
五杀联盟
写一个callback
0
klaus_
klaus_
楼主是想获取什么吗?如果想获取返回值,可以实现Callable接口,call方法调用之后,会返回一个future  ,不知道偏题没。
站在巨人的肩膀上奋斗
站在巨人的肩膀上奋斗
获取线程死亡后的通知,能否给个例子或详细些
0
逝水fox
逝水fox
异常结束倒是可以
0
烟头
烟头
得线程通知你 应该没法获得
0
easymbol
easymbol
创建一个监控线程
0
古月楼
古月楼
CyclicBarrier cb = new CyclicBarrier(4, new MainTask());
ExecutorService pool = Executors.newCachedThreadPool();
pool.execute(new ChildTask(cb));
pool.execute(new ChildTask(cb));
pool.execute(new ChildTask(cb));

pool.execute(new ChildTask(cb));

可以用CyclicBarrier,等到4个子线程执行完毕后会调用MainTask()线程。这样相当于获取了4个子线程已经死亡信息

0
高得顺
高得顺
干嘛一定要用java内置的API来解决这个问题呢,try...finally一下就解决了
public class MyRunner implements Runnable {

	@Override
	public void run() {
		try{
			//TODO:该干啥干啥
		}finally{
			System.out.println("我将在100纳秒内死亡,可不可以抢救下");
			//TODO:发求救信号或者死亡通知
		}
	}
}
返回顶部
顶部