首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java线程中的BufferedWriter.append是安全的吗?

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

Stack Overflow用户
提问于 2018-11-14 05:18:35
回答 2查看 763关注 0票数 2

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

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

EN

回答 2

Stack Overflow用户

发布于 2018-11-14 05:33:26

当您检查实现时,您可以看到有一个锁对象,并且write或flush等方法与一个公共对象lock同步。

代码语言:javascript
复制
synchronized (lock) {
  ... here is the body of the method, enclosed in the sync block
}
票数 1
EN

Stack Overflow用户

发布于 2018-11-14 05:40:06

“线程安全吗”这个问题的一个问题是,答案取决于你所说的线程安全是什么意思。

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

例如:

代码语言:javascript
复制
void write(int a, String blah) {
  writer.write(a);
  writer.write(blah);
}

这两个写操作不是自动执行的,因此有可能来自两个线程的写操作是交错的。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53289631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档