Я запускаю пять потоков, которые генерируют случайные строковые данные, а затем записывают только один выходной поток.после завершения программы некоторые данные были потеряны.
Я упрощаю свой код.
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. Я думаю, что еслиЯ использую структуру данных индексации для проверки того, какие данные были использованы, это можно решить.но есть ли лучший способ решить эту проблему?Пожалуйста, помогите мне.Спасибо.