提问者: 旺旺商城 | 浏览次数: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)//所有线程结束
{
//这边执行你的逻辑代码
}
}
{
设置一个静态变量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)//所有线程结束
{
//这边执行你的逻辑代码
}
}
相关推荐
易语言判断多线程是否运行结束源码,判断多线程是否运行结束,子程序1
易语言判断多个线程运行结束源码,判断多个线程运行结束,子程序1
c# 多线程任务中结束全部线程
C#判断线程池中所有的线程是否已经完成.doc
易语言源码易语言判断多线程是否运行结束源码.rar
Delphi中有一个线程类TThread是用来实现多线程编程的,这个绝大多数Delphi书藉都有说到,但基本上都是对TThread类的几个成员作一简单介绍,再说明一下Execute的实现和Synchronize的用法就完了。然而这并不是多线程编...
Java 给多线程编程提供了内置的支持。 一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。 多线程是多任务的一种特别的形式,但多线程使用了更小的资源开销。 ...
Qt两种方法实现多线程的开启,及子线程的安全结束线程,及QMutex加锁,Qt单例化实现
VC\专用编程\线程\vc编程,多线程实例线程创建·事件触发·结束进程.rar
VB.NET 多线程入门的小例子 简单易懂
Math类中的随机函数产生10000个... 在主线程中,按下标顺序对整个数组范围进行查找,查找成功的下标存于缓冲区,待所有查找线程结束后,比较两个缓冲区存储的下标是否相同,输出比较结果(从而验证多线程查找的正确性)
delphi开启40个线程,各不影响,可暂停,结束,但40个线程都运行完的时间明显比一个线程慢,不知为什么
易语言正确退出线程源码,正确退出线程,多线程,正常结束线程,提示信息,发送消息
//使用多线程,定时器和map等编程技巧。 // 定义map对象来存储数据,主线程中定时向该对象插入数据,每次插入两个连续的数据插入后显示出当前map大小。 //第二个线程定时删除map中的数据,每次删除一个最前面的数据...
用于调用进度条类,多线程显示结果,否则进度条不会刷新
Delphi进度条(多线程),美观不卡界面,简单开启,定位,结束: 包目录(MyProgress): MyProgress.dcu //最终引用 MyProgressPackage.bpl //安装包 MyProgressPackage.bpi MyProgressPackage.dcp MyProgressPackage....
本程序是比较完善的改进,利用多线程弹出等待窗口,并根据后台程序的运行需要实时发出运行状态信息到等待窗口中,当后台程序运行结束时给弹出窗口线程发出结束信号,让线程自行终止。程序运行环境 vs.net 2010
C# winform 动态创建和 关闭多线程,基于VS2010的完整解决方案。 可运行
由于用到了非托管资源,最简单的方式是把托管资源(WaitForm)放在工作线程,线程结束,窗体会自动销毁,不用自己写清理代码。 ShowDialog自动阻塞当前线程,这使它成为最优的解决方式。
实现三个线程同时执行,且可以单独关闭和运行,通过进度条实现可视化演示。