ZKX's LAB

怎么判断一个线程已经结束 如何判断一个线程已经结束

2021-04-23知识4

在多线程程如何判断任务已经结束? 我觉得是思路上的问题,借鉴消费者和生产者问题模式,假设发布任务的是一个类,执行任务的是另一个类(在你的例子里有三个任务线程)。那么只有发布任务的类才知道是否没有任务了。执行任务的类在获取任务时,检查发布任务的类是否还有任务就可以了。class TaskManager{static final Task PENDING_TASK=new Task();static final Task NOMORE_TASK=new Task();Task aquireTask();}class TaskWorker{doWork(){while(true){Task t=TaskMansger.AqurieTask();if(t=PENDING_TASK){sleep(.);continue;}if(t=NOMORE_TASK)all task completed,break;}}}这是基于任务发布者要提供明确的指示,即:任务已全部完成。如果任务发布者不能提供这一指示,那么很难实现,因为基于时间的处理不那么准确。

C#里面如何判断多线程全部都已经结束 /检查线程池的方法 private voidCheckThreadPool(object state,bool timeout){int workerThreads=0;int maxWordThreads=0;int int compleThreads=0;ThreadPool.GetAvailableThreads(out workerThreads,out compleThreads);ThreadPool.GetMaxThreads(out maxWordThreads,out compleThreads);当可用的线数与池程池最大的线程相等时表示线程池中所有的线程已经完成 if(workerThreads=maxWordThreads){/当执行此方法后CheckThreadPool将不再执行 rhw.Unregister(null);此处加入所有线程完成后的处理代码}}

怎么判断一个线程是否已经结束,如果没有结束怎么来结束它?? 呵呵,可以呀,不过你要在外面保存线程对象才行,即在建立线程对象时,将新建的线程对象的指针保存起来(要是类成员变量或全局变量),然后你才能在OnClose事件中能过线程对象的。

#java线程结束方法#如何判断一个线程已经结束

随机阅读

qrcode
访问手机版