我正在使用文件作为大数据的缓存。一个线程按顺序写入,另一个线程按顺序读取。
我可以确定write()
在一个线程中(由)写入的所有数据都可以read()
来自另一个线程,假设在 Java 内存模型方面存在适当的“之前发生”关系?这种行为是否记录在案?
在我的 JDK 中,FileOutputStream
不覆盖flush()
,并且OutputStream.flush()
是空的。这就是为什么我想知道...
有问题的流由我完全控制的类专有。每个流都保证只能由一个线程访问。我的测试表明它按预期工作,但我仍然想知道这是否得到保证和记录。
另请参阅此相关讨论。