请教多线程问题
package com.test;
public class TestThread extends Thread {
private static String parm = "";
public void run() {
try
{
for(int i=0;i<5;i++){
PrintThread thread = new PrintThread();
thread.setValue(String.valueOf(parm+"-"+i));
thread.start();
thread.sleep(1000);// 主线程挂起1秒
}
}catch (InterruptedException e)
{
System.out.println(parm + " error");
Thread.interrupted();
return;
} finally{
}
}
public static void main(String[] args) {
parm = args[0];
TestThread test = new TestThread();
test.start();
}
}
package com.test;
import java.util.ArrayList;
import java.util.List;
public class PrintThread extends Thread {
public String parm = "";
public void run(){
if(parm.equals("aa-2")){
List list = new ArrayList();
list.get(parm.indexOf("bb"));
}
System.out.println(parm + ":"+System.currentTimeMillis());
}
public void setValue(String parm){
this.parm = parm;
}
}
TestThread也是多线程程序,可能有多个用户同时启动。然后启动多个PrintThread线程进行写文件操作。现在我有个问题,当其中一个线程失败后,我怎么中断另外4个可能还在运行中的PrintThread线程呢?或者重新启动出错的那个线程。
还有个问题怎么判断TestThread 中所有5个线程都正常执行完毕呢,因为5个线程执行时间差距可能还挺大。如果有任何一个线程失败,我需要删除整个出错目录。需要结束所有在写文件的线程。