Java线程中的BufferedWriter.append安全吗?

所以我有一个多个线程尝试同时写入的文件。

我使用 Buffered Writer 写入文件。现在,我的问题是,如果使用 append 将线程的内容附加到文件中,它会是线程安全的吗?


慕勒3428872
浏览 375回答 2
2回答

慕田峪9158850

“它是线程安全的”问题的问题之一是答案取决于您所说的线程安全性。一个类可以是线程安全的,因为它自己的不变量不能被多个线程同时使用而破坏;但是您仍然可以以非线程安全的方式使用该类。例如:void write(int a, String blah) {  writer.write(a);  writer.write(blah);}这两个写入不是原子执行的,因此两个线程的写入有可能交错。如果您对线程安全有任何疑问,请自行管理。

长风秋雁

当你检查实现时,你可以看到有一个锁对象和方法,例如write或flush正在与一个公共对象同步lock。synchronized (lock) {  ... here is the body of the method, enclosed in the sync block}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java