java 如何判断一个线程结束

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 如何判断一个线程结束相关的知识,希望对你有一定的参考价值。

想在一个线程结束后再进行下一步操作,如何实现??

线程结束时等待也就结束了
------解决方案--------------------------------------------------------
waitforsingleobject当然可以。
或者设一全局变量,线程结束就将其置为某值。在别处读取该值,就可以判断线程是否结束了。
------解决方案--------------------------------------------------------
wait_object_0
表示这个线程已经退出了,wait_timeout是这个线程在此函数返回时候还没退出,但是设置的等待时间已经到了,wait_abandoned是所等待的对象是mutex而非thread,
参考技术A 线程结束的标志是run()函数执行完毕。如果你要判断的话 用 线程名.isAlive();本回答被提问者采纳 参考技术B isAlive():boolean 参考技术C 在线程结束时设置flag

while(flag)
break;


下一步操作;

急求:java 如何获得线程运算的结果

如题,因为是多线程并行计算,而线程的run()方法不提供返回值,我该怎么获得线程的运算结果呢?即,一个线程运行结束返回给主函数一个结果,并行计算的线程返回的结果是一个矩阵的元素。请大虾指教~

在main方法中创建一个数组。
所有线程类的构造方法都需要一个数组做参数。线程体结束时给数组中的某个元素赋值。
public void run()
......
a[i] = ......;

main方法中等待所有线程结束后打印数组。
t1.join();
参考技术A 我不敢确定我说的对啊 首先想从run里拿出结果 无非就是在外面设置一个静态的全局变量。另外Thread这个类里 可以取得很多当前线程的信息 比如Thread.currentThread().* 这个*里有很多可以get 和set的方法也许你用的上 参考技术B 线程相当于异步会话,和主函数没有同步执行。

所以要让线程返回的数据在主函数中同步执行是存在问题的。

你可以再建一个守护线程,来监控你多线程返回的数据,多线程返回的数据可以通过系统静态变量来记录。

具体只能和你说这么多了,不知道你的业务是个什么业务。
参考技术C 在线程中放入方法吧,方法中有返回值就得了。 参考技术D 加个类变量就可以

以上是关于java 如何判断一个线程结束的主要内容,如果未能解决你的问题,请参考以下文章

DELPHI 用TThread如何判断线程是不是存在 并且释放线程

MFC 如何在主线程中判断子线程是不是运行,运行则关闭子线程?

Java主线程如何等待子线程执行结束(转)

如何使“主线程”等待“子线程”执行结束后再继续执行

线程会不会随着activity的结束而结束?

Java如何判断线程池所有任务是不是执行完毕