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如何判断线程是不是存在 并且释放线程