所以我有一个多线程同时尝试写入的文件。
我使用Buffered Writer来写入文件。现在,我的问题是,如果使用append将线程的内容附加到文件中,它会是线程安全的吗?
发布于 2018-11-14 05:33:26
当您检查实现时,您可以看到有一个锁对象,并且write或flush等方法与一个公共对象lock同步。
synchronized (lock) {
... here is the body of the method, enclosed in the sync block
}发布于 2018-11-14 05:40:06
“线程安全吗”这个问题的一个问题是,答案取决于你所说的线程安全是什么意思。
类可以是线程安全的,因为它自己的不变量不能被多个线程同时使用而破坏;但您仍然可以以非threadsafe的方式使用该类。
例如:
void write(int a, String blah) {
writer.write(a);
writer.write(blah);
}这两个写操作不是自动执行的,因此有可能来自两个线程的写操作是交错的。
如果您对线程安全有任何疑问,请自己管理它。
https://stackoverflow.com/questions/53289631
复制相似问题