为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕勒3428872 2022-01-19 16:55:47
所以我有一个多个线程尝试同时写入的文件。我使用 Buffered Writer 写入文件。现在,我的问题是,如果使用 append 将线程的内容附加到文件中,它会是线程安全的吗?
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

“它是线程安全的”问题的问题之一是答案取决于您所说的线程安全性。


一个类可以是线程安全的,因为它自己的不变量不能被多个线程同时使用而破坏;但是您仍然可以以非线程安全的方式使用该类。


例如:


void write(int a, String blah) {

  writer.write(a);

  writer.write(blah);

}

这两个写入不是原子执行的,因此两个线程的写入有可能交错。


如果您对线程安全有任何疑问,请自行管理。


查看完整回答
反对 回复 2022-01-19
?
长风秋雁

TA贡献1757条经验 获得超7个赞

当你检查实现时,你可以看到有一个锁对象和方法,例如write或flush正在与一个公共对象同步lock。


synchronized (lock) {

  ... here is the body of the method, enclosed in the sync block

}


查看完整回答
反对 回复 2022-01-19
  • 2 回答
  • 0 关注
  • 374 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信