`
guomingzhang2008
  • 浏览: 160869 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

判断线程结束

    博客分类:
  • Java
阅读更多
如何判断线程结束呢?

如:
在使用线程池时,
ExecutorService threadPool = Executors.newFixedThread(10);
threadPool.execute(new xxThreadTask(myEntity, doneSignal));
// 等待所有线程执行完毕,全部执行结束前,主线程在此等待。
doneSignal.await();

// 线程 xxThreadTask 类中,要在run方法的结束前调用 doneSignal.countDown();

通过使用doneSignal判断线程池中的所有线程是否结束,如果没有结束,则主线程在此处等待,直到线程池中的所有线程都执行完,才继续向下执行。

用到的类都是JDK中的。请查看JDK文档中的 CountDownLatch 类,里面有示例。

要下班了,匆匆写完,主要是这个思路,挺简单的,过后把jdk中的例子粘贴进来.....
分享到:
评论

相关推荐

    易语言判断多线程是否运行结束

    这个`判断线程结束`子程序内部可以封装上面提到的`线程.结束标志`或`线程.状态`的检查逻辑,提供简洁的调用接口。 综上所述,易语言提供了丰富的多线程编程功能,包括创建线程、控制线程以及判断线程状态等。通过...

    delphi判断线程状态

    `TThread.OnTerminate`事件可用于在线程结束时执行清理工作。 5. **示例代码** 下面是一个简单的示例,展示如何创建一个自定义线程并检查其状态: ```delphi uses Classes, Windows; type ...

    易语言判断多个线程运行结束

    - 要判断线程是否已结束,可以使用“线程状态”命令获取线程的当前状态。此命令会返回一个整数值,表示线程的状态,如0表示未启动,1表示正在运行,2表示等待,3表示已结束等。 3. **子程序设计**: - 在“子程序...

    C#判断线程池中所有的线程是否已经完成

    需要注意的是,这种方法虽然能判断线程池中工作者线程的工作状态,但它不考虑已完成但尚未结束的任务(比如那些正在等待I/O操作完成的任务)。如果你需要考虑到这些情况,可能需要更复杂的逻辑,例如结合`Task`类或...

    线程异步工作,当一个线程结束时异步通知另一线程

    3. **线程结束时的通知机制** 要实现一个线程在结束时异步通知另一个线程,可以利用`std::condition_variable`或`std::atomic`。`std::condition_variable`是一个同步原语,允许线程等待特定条件满足,而`std::...

    c#多线程抓取网页内容

    ##### 判断线程结束 判断线程何时完成抓取工作是一个难点。一种可能的策略是,当线程尝试多次都无法获取新的URL时,可以认为它已经完成了所有任务。 ```csharp string url = ""; int times = 0; while (url == "") {...

    易语言判断程序段是否运行结束

    易语言提供了相关的系统命令,如“创建线程”、“销毁线程”等,通过检查线程或进程的存活状态,可以判断它们是否已经运行结束。 5. **异常处理**:程序可能因错误或异常而提前终止。在易语言中,可以使用“捕获...

    易语言判断多线程是否运行结束源码-易语言

    而判断线程是否运行结束,通常会涉及到线程状态的检查。易语言中,可以通过`线程信息`函数获取线程的状态,比如`线程状态正在运行`、`线程状态已结束`等。 "判断多线程是否运行结束"的源码可能包含以下关键部分: ...

    易语言源码易语言判断多线程是否运行结束源码.rar

    易语言源码易语言判断多线程是否运行结束源码.rar

    易语言源码易语言判断多个线程运行结束源码.rar

    本压缩包包含的是一个易语言源码,专门用于判断多个线程是否运行结束。下面将详细解析这个知识点。 1. **多线程概念**:多线程是指在一个进程中可以同时执行多个不同的线程。在易语言中,多线程可以提高程序的并发...

    linux c++ 守护线程,判断程序是否运行,不存在就启动

    最后,在主程序中创建守护线程,并确保主程序不会立即结束,以免守护线程被提前销毁。 ```cpp int main() { std::thread daemonThread(monitorTargetProgram); // 确保主程序不立即结束 while (true) { std::...

    VB.NET 多线程入门的小例子

    Console.WriteLine("工作线程结束.") End Sub End Module ``` 这个小例子展示了如何创建一个后台线程来执行耗时任务,而不会阻塞主线程的执行。 总结,VB.NET提供了强大的多线程支持,使得开发者能够充分利用...

    主线程等待子线程结束

    对于多线程而言,一个主要的难题就是如何线程是否都已经执行结束。 也就是说,需要在主线程开启子多线程后,直到子线程全部执行结束为止,回到主线程。

    通过线程控制随机数产生与结束

    通常,它会包含创建线程、启动线程、设置随机数生成逻辑以及控制线程结束的相关代码。通过分析和学习这个Demo,开发者可以更好地理解如何在Android中利用线程进行复杂任务的处理,并且掌握线程间的通信和同步机制。 ...

    使用ASP.NET创建线程实例教程

    在ASP.NET中,创建线程是进行多任务处理的关键步骤,尤其在需要并行执行任务或者需要异步操作时。本文将深入讲解如何利用ASP.NET创建线程,并提供实例代码来帮助理解。 线程是操作系统分配CPU时间的基本单元,一个...

    vc中获取一个线程的状态及返回值

    - 在本例中,可能使用了事件对象来协调判断线程和工作线程之间的交互,例如通过`SetEvent()`和`WaitForSingleObject()`控制线程的启动和停止。 5. **线程返回值**: - 线程函数可以通过`ExitThread()`函数设置...

    易语言源码判断程序段是否运行结束.rar

    6. **多线程处理**:在多线程环境下,判断程序段结束需要考虑线程的状态。易语言提供“创建线程”、“等待线程”等命令,可以监控线程的运行情况,当所有相关线程都结束时,可以认为程序段结束。 7. **事件驱动编程...

    判断Threading.start新线程是否执行完毕的实例

    这种方式可以用来判断线程是否已经完成了其任务,因为`result`初始为1,执行完后变为0。 `Threading.Thread`的其他关键方法包括: - `start()`: 这个方法启动线程,并且自动调用`run()`方法。`run()`方法通常是...

    linux多线程编程.pdf

    同时,也可以使用pthread_detach() 函数来通知系统对线程的资源进行自动回收,避免了对线程结束的显式等待。 4. 线程的退出:线程在完成工作后可以调用pthread_exit() 函数来退出。调用该函数后,线程将终止执行,...

Global site tag (gtag.js) - Google Analytics