我为每个file.code创建了线程,如下所示。
AList是一个包含文件名{test1.txt,test2.txt,test3.txt}
for(String str : AList){
thread t = new Thread(new Filechange(str));
t.start();
}
下面给出了Filechange类。
public class C implements Runnable {
private String tmp;
public Filechange(String strg) {
this.tmp = strg;
}
public void run() {
system.out.println("File Name ::"+tmp);
} t.sleep(1000);
t.run();
}
运行此代码时,我总是得到输出"File Name ::test3.txt"
。
如何解决这个问题?
答案 0 :(得分:1)
如何制作线程列表或其他内容?我认为当你一直重新分配“线程t”时,你将覆盖前一个线程,因此,只有最后一个线程存活。做这样的事情:
List<Thread> threadList = new ArrayList<Thread>();
for(String str : AList){
threadList.add(new Thread(new Filechange(str)));
threadList.get(threadList.size()-1).start();
}