`
dyllove98
  • 浏览: 1405451 次
  • 性别: Icon_minigender_1
  • 来自: 济南
博客专栏
73a48ce3-d397-3b94-9f5d-49eb2ab017ab
Eclipse Rcp/R...
浏览量:39059
4322ac12-0ba9-3ac3-a3cf-b2f587fdfd3f
项目管理checkList...
浏览量:80062
4fb6ad91-52a6-307a-9e4f-816b4a7ce416
哲理故事与管理之道
浏览量:133167
社区版块
存档分类
最新评论

多线程如何判断全部线程是否已经全部结束?

 
阅读更多

提问者: 旺旺商城 | 浏览次数:1904次

class ReadFileThread implements Runnable
{
 
 int i=0;
 public ReadFileThread(int i){
  this.i=i;
 }
 public void readFileThread(int i){

  try{
   //.....read file(i);
  }
  catch(Exception e){
   e.printStackTrace();
  }
 }
 public void run(){
  try
  {
   this.readFileThread(i);
  }
  catch(Exception e)
  {
   

  }
 }
}


public class TextThread
{
 public static void main(String[] args){

  for(int i=0;i<10;i++){
   new Thread(new ReadFileThread(i)).start();
   }
 }

}


以上程序使十个进程开始读10个文件,一个进程读一个文件,现在有一个问题就是如何判断十个进程都已经结束。要用Stop人为结束吗?还是进程执行完了自动结束。最主要的还是判断十个进程是否都已结束

问题补充:

但是执行完了我用isAlive属性来判断,进程还是处于Runable

 

满意回答
 在class ReadFileThread implements Runnable
{
设置一个静态变量count
public static int count=0;
每次建立一个线程的时候count++

public static void main(String[] args){

for(int i=0;i<10;i++){
ReadFileThread.count++;
new Thread(new ReadFileThread(i)).start();

}
然后线程结束的时候这样增加一个
finally
try{
//.....read file(i);
}
catch(Exception e){
e.printStackTrace();
} finalliy{             //增加这个finally
synchronized (this) {
this.count--;
}
}
}

在main函数中当
while(true)
{
if(ReadFileThread.count==0)//所有线程结束
{
//这边执行你的逻辑代码

}
}
分享到:
评论

相关推荐

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

    标题“易语言判断多线程是否运行结束”所指的,就是在多线程环境下,编写代码来检测一个特定线程是否已经完成了它的执行任务,即线程是否已经终止。这在等待所有线程完成、线程间同步或者资源释放等场景下非常有用。...

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

    通过以上知识点,你可以理解并实现易语言中的多线程管理,特别是判断多个线程运行结束的功能。实际编程时,应根据具体需求调整代码结构和逻辑,确保程序的稳定性和效率。同时,学习并掌握易语言的文档和在线资源,将...

    c# 多线程任务中结束全部线程

    在C#中,多线程是程序设计中的一个重要概念,它允许程序同时执行多个操作,从而提高程序的效率和响应性。然而,在某些情况下,我们可能需要终止正在运行的所有线程,这通常发生在应用程序需要关闭或者某个关键错误...

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

    线程池中的线程通常用于执行异步任务,因此在某些场景下,我们需要判断线程池中所有的线程是否已经完成工作。这个问题可以通过注册一个等待单个对象(RegisterWaitForSingleObject)并配合定期检查线程池状态来解决...

    delphi判断线程状态

    综上所述,理解Delphi中线程的状态及其判断方式是多线程编程的关键。正确管理线程状态可以帮助我们优化程序性能,避免资源浪费,同时也能有效防止因线程交互不当导致的错误。通过结合`TThread`类的内置功能以及...

    鱼刺多线程模块

    "鱼刺多线程模块"是一个专为提升程序运行效率而设计的开源组件,它主要聚焦于多线程技术的应用。在计算机科学中,多线程是并发执行多个任务或子任务的一种方法,使得程序能够更高效地利用系统资源,特别是在多核...

    易语言多线程传递多参数

    在编程领域,多线程是实现并发执行任务的重要机制,特别是在易语言中,它能有效提升程序的执行效率。易语言是一种中文编程语言,旨在降低编程门槛,让普通用户也能进行程序开发。本文将深入探讨易语言中的多线程以及...

    C++ 等待线程结束

    在C++编程中,线程同步是一个至关重要的概念,特别是在多线程编程中。当一个程序包含多个执行路径,即线程,有时我们需要确保某个线程执行完毕后再进行下一步操作,这就涉及到“等待线程结束”的功能。本篇文章将...

    鱼刺多线程注册源码例子(鱼刺多线程稳定框架)

    "鱼刺多线程注册源码例子"是一个基于"鱼刺多线程稳定框架"的编程实践,旨在展示如何在软件开发中有效地利用多线程技术来提高程序的执行效率和稳定性。在这个例子中,"鱼刺框架"可能是一个专门为多线程编程设计的开源...

    PB多线程实现

    // 主线程等待子线程结束 } } ``` 总的来说,PB系列(尤其是PB12.5和PB.NET)提供了多种多线程实现方式,适应了不同开发需求。理解并掌握这些技术,能帮助开发者构建更加高效、响应迅速的PB应用程序。

    多线程框架通用多线程源码.zip

    《深入理解易语言版多线程通用框架》 在计算机编程中,多线程是一种并发执行任务的技术,它允许多个任务在同一时间内运行,从而提高了系统资源的利用率和程序的响应速度。尤其在易语言这样的高级编程环境中,多线程...

    Linux下C语言多线程编程实例

    Linux 下 C 语言多线程编程实例 Linux 下的多线程编程是一种非常重要的技术,在实际应用中有非常广泛的应用范围。多线程编程可以大大提高程序的执行效率和响应速度。但是,多线程编程也存在一些复杂性,例如线程...

    Delphi多线程详解_delphi_delphi多线程_多线程_

    在编程领域,多线程是一种常见且强大的技术,它允许应用程序同时执行多个任务,从而提高程序的效率和响应性。Delphi,作为一个流行的Object Pascal开发环境,提供了丰富的工具和库来支持多线程编程。本篇文章将深入...

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

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

    vb多线程程序

    在VB 6.0编程环境中,多线程技术是一种关键的高级特性,它允许应用程序同时执行多个任务,提高系统的响应速度和效率。本教程通过一个简单的小例子来讲解如何在VB 6.0中实现多线程。 首先,我们要了解线程是什么。...

    多线程基础与基于多线程的简单聊天室

    在IT行业中,多线程是程序设计中的一个重要概念,尤其在Java编程中,它被广泛应用于提高应用程序的并发性能和响应速度。本压缩包“多线程基础与基于多线程的简单聊天室”提供了对多线程技术的实践理解和二次开发的...

    C#.NET多线程实例6个(包括多线程基本使用,多线程互斥等全部多线程使用实例)完整源码

    在C#.NET编程环境中,多线程是一种强大的技术,它允许程序同时执行多个任务,从而提高了应用程序的效率和响应性。本资源包含六个完整的多线程实例,涵盖了从基础使用到高级特性的全面实践,例如线程的创建、同步与...

    linux多线程编程.pdf

    Linux多线程编程是操作系统中并发程序设计的一个重要领域,它允许开发者在同一程序中创建多个线程,以实现并行执行,从而提高程序的执行效率和响应能力。Linux下的多线程编程通常基于POSIX线程(pthread)库来实现,...

    用VB6实现多线程

    在VB6(Visual Basic 6)环境中,多线程是一个重要的技术,它允许程序同时执行多个任务,提高程序的响应性和效率。VB6本身并不直接支持多线程,但可以通过调用Windows API来实现。本篇文章将深入探讨如何在VB6中实现...

Global site tag (gtag.js) - Google Analytics