【发布时间】:2016-01-28 19:13:26
【问题描述】:
我有两个线程,每个线程都应该将其名称和递增的数字写入文件 - 但它不起作用。
如果我使用System.out.println() 方法,线程工作正常,只有写入文件失败。知道为什么吗?
这就是我的线程的样子:
package ThreadTest;
import java.io.*;
public class Thread1 implements Runnable {
public void run() {
int x = 0;
while (true) {
try {
BufferedWriter p1 = new BufferedWriter(new FileWriter("C:\\Users\\User\\Desktop\\a1.txt"));
x++;
p1.write("Thread11: " + x);
Thread.sleep(500);
p1.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
}
主类如下所示:
package ThreadTest;
public class ThreadTestTest {
public static void main(String args[]) {
try {
Thread1 t11 = new Thread1();
Thread t1 = new Thread(t11);
Thread2 t22 = new Thread2();
Thread t2 = new Thread(t22);
t2.start();
t1.start();
t1. join();
t2. join();
} catch (Exception e) {
e.getMessage();
}
}
}
【问题讨论】:
-
你遇到了什么错误?
-
而且您不需要将
t11和t22作为参数传递给另一个线程对象。实例本身就是线程。
标签: java multithreading file