在java中,动态创建时如何处理线程
我为每个文件创建了线程。代码如下。
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"
。 如何解决这个问题?
I have created threads for each file.code is given below.
AList is an array list contains file name {test1.txt,test2.txt,test3.txt}
for(String str : AList){
thread t = new Thread(new Filechange(str));
t.start();
}
Filechange class is given below.
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();
}
When running this code, always I am getting output "File Name ::test3.txt"
.
How to resolve this problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
制作一个线程列表或其他东西怎么样?我认为,当您一直重新分配“线程 t”时,您会覆盖前一个线程,因此,只有最后一个线程幸存。做这样的事情:
How about making a list of threads or something? I think that when you reassign the "thread t" all the time, you are overwriting the previous thread, thus, only the last thread is surviving. Do somthing like this: