第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

多線程只寫一個輸出流并且數(shù)據(jù)丟失

多線程只寫一個輸出流并且數(shù)據(jù)丟失

幕布斯6054654 2023-08-16 15:51:38
我運(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ù),就可以解決。但有沒有更好的方法來解決這個問題呢?請幫我。謝謝。
查看完整描述

1 回答

?
桃花長相依

TA貢獻(xiàn)1860條經(jīng)驗 獲得超8個贊

嘗試使用ConcurrentLinkedQueue<String>for buffer、 with 方法offerpoll而不是+=and = ""on String 引用。



查看完整回答
反對 回復(fù) 2023-08-16
  • 1 回答
  • 0 關(guān)注
  • 173 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號