所以我有一個多個線程嘗試同時寫入的文件。我使用 Buffered Writer 寫入文件?,F(xiàn)在,我的問題是,如果使用 append 將線程的內容附加到文件中,它會是線程安全的嗎?
2 回答

慕田峪9158850
TA貢獻1794條經(jīng)驗 獲得超7個贊
“它是線程安全的”問題的問題之一是答案取決于您所說的線程安全性。
一個類可以是線程安全的,因為它自己的不變量不能被多個線程同時使用而破壞;但是您仍然可以以非線程安全的方式使用該類。
例如:
void write(int a, String blah) {
writer.write(a);
writer.write(blah);
}
這兩個寫入不是原子執(zhí)行的,因此兩個線程的寫入有可能交錯。
如果您對線程安全有任何疑問,請自行管理。

長風秋雁
TA貢獻1757條經(jīng)驗 獲得超7個贊
當你檢查實現(xiàn)時,你可以看到有一個鎖對象和方法,例如write或flush正在與一個公共對象同步lock。
synchronized (lock) {
... here is the body of the method, enclosed in the sync block
}
添加回答
舉報
0/150
提交
取消