cfnr.net
当前位置:首页 >> jAvA判断线程执行完毕 >>

jAvA判断线程执行完毕

Thread thread = new Thread(.....); if(thread.IsAlive){}

线程结束的标志是run()函数执行完毕。如果你要判断的话 用 线程名.isAlive();

import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Test { public static void main(String args[]) throws InterruptedException { ExecutorService exe = Executors.newFixedThreadPool(3);...

可以弄个List存放所有任务,任务完成了就删掉。 大概代码如下,你可以调试看看 private ExecutorService threadPool; private List loadTasks; private List loadResults; private int numberOfTasks; public void load() { threadPool = Execut...

线程有四种状态,任何一个线程肯定处于这四种状态中的一种:1) 产生(New):线程对象已经产生,但尚未被启动,所以无法执行。如通过new产生了一个线程对象后没对它调用start()函数之前。2) 可执行(Runnable):每个支持多线程的系统都有一个排程器

看Executor的设计,并没有这种api去检查所有的线程都执行完毕.. 一个比较通俗的做法是,当向线程池内增加一个线程的时候,用一个线程安全的变量去记录它.当它结束的时候,再从这个线程安全的变量中减去它.当它等于0的时候.shutdown这个线程池. 还有...

如果任务是有返回结果的,结合callable接口使用线程池返回Futrue,然后遍历所有Futerue获取结果,所有结果都返回则执行完毕 如果没有返回结果,则使用CounDownLatch类实现

java.util.concurrent.CountDownLatch 这个类可以实现你所要的功能 例如:CountDownLatch latch = new CountDownLatch(5) //声明计数器为5个 Thread t = new Thread() { public void run() { try { //TODO 你的应用 } catch (Exception e) { //T...

其实最佳答案的说法是有问题的,如果题主指的结束,是指方法块语句的执行结束的话,热心网友的说法是对的。但是对于线程本身,所有线程(包括主线程)在启动后都被CPU参照优先级交替调用,运行的顺序是无法预测的,但最后结束的一定是主线程。 ...

线程有四种状态,任何一个线程肯定处于这四种状态中的一种:1) 产生(New):线程对象已经产生,但尚未被启动,所以无法执行。如通过new产生了一个线程对象后没对它调用start()函数之前。2) 可执行(Runnable):每个支持多线程的系统都有一个排程器...

网站首页 | 网站地图
All rights reserved Powered by www.cfnr.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com