我運(yùn)行五個線程來生成隨機(jī)字符串?dāng)?shù)據(jù),然后僅寫入一個輸出流。程序完成后,一些數(shù)據(jù)丟失了。我簡化了我的代碼。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; }}我認(rèn)為數(shù)據(jù)丟失的原因在第1點(diǎn)和第2點(diǎn)之間。我想如果我使用索引數(shù)據(jù)結(jié)構(gòu)來檢查消耗了哪些數(shù)據(jù),就可以解決。但有沒有更好的方法來解決這個問題呢?請幫我。謝謝。
多線程只寫一個輸出流并且數(shù)據(jù)丟失
幕布斯6054654
2023-08-16 15:51:38