ObjectOutputStream.writeObject到文件线程安全吗?

问题描述 投票:1回答:2

我正在开发一个必须将对象序列化为文件以供以后使用的应用程序。有多个线程同时调用方法writeObject(用于不同的对象)。该方法是线程安全的吗?我必须在应用程序代码中同步写操作吗?

例如:线程1序列化对象A,线程2序列化对象B。如果我不同步它们,那么A和B是否在文件中相互混淆?谢谢!

java multithreading serialization concurrency objectoutputstream
2个回答
0
投票

取决于。如果他们正在写入同一个文件,则应该同步。但是,即使在对象序列化之外,这通常也是正确的:如果您有两个或多个线程写入同一流,则需要对其进行同步。

如果它们各自写入自己的流/文件,那么您就不会有资源冲突,那将是线程安全的


0
投票

否,ObjectOutputStream不是线程安全。 API似乎对此没有任何要求。您也可以检查源代码,其中只有线程安全性可以保证安全性。

© www.soinside.com 2019 - 2024. All rights reserved.