我运行五个线程来生成随机字符串数据,然后仅写入一个输出流。程序完成后,一些数据丢失了。
我简化了我的代码。
new Thread(() -> {
stream.write(RANDOM_STRING + "\n)
).start();
class Stream {
String buffer = "";
Stream() {
new Thread(() -> {
BufferedOutputStream bs
= new BufferedOutputStream(new FileOutputStream("PATH");
bs.wrtie(buffer.getBytes()); // point 1
buffer = "" // point 2
bs.close();
}).start();
}
public void write(String input) {
buffer += input;
}
}
我认为数据丢失的原因在第1点和第2点之间。我想如果我使用索引数据结构来检查消耗了哪些数据,就可以解决。但有没有更好的方法来解决这个问题呢?请帮我。谢谢。
桃花长相依
相关分类