Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 可以同时从对象文件中写入和读取吗?_Java_Multithreading_Synchronization - Fatal编程技术网

Java 可以同时从对象文件中写入和读取吗?

Java 可以同时从对象文件中写入和读取吗?,java,multithreading,synchronization,Java,Multithreading,Synchronization,假设我有一个ArrayList并使用ObjectOutputStream的方法writeObject()将其存储在一个文件中。对我来说,只允许一个线程写入文件,多个线程同时读取同一个文件,这样可以吗?或者,如果有一条线在写,我应该根本没有阅读吗?我不知道幕后发生了什么,所以我不知道该如何处理。不,除非你采取一些谨慎的处理措施,否则这是不好的!不可以。并发读取对象是不安全的,更不用说并发读取和写入对象了,操作系统甚至可能不允许您执行后者。你为什么认为你需要这样做?为什么?在引擎盖下发生了什么使它成

假设我有一个
ArrayList
并使用
ObjectOutputStream
的方法
writeObject()
将其存储在一个文件中。对我来说,只允许一个线程写入文件,多个线程同时读取同一个文件,这样可以吗?或者,如果有一条线在写,我应该根本没有阅读吗?我不知道幕后发生了什么,所以我不知道该如何处理。

不,除非你采取一些谨慎的处理措施,否则这是不好的!不可以。并发读取对象是不安全的,更不用说并发读取和写入对象了,操作系统甚至可能不允许您执行后者。你为什么认为你需要这样做?为什么?在引擎盖下发生了什么使它成为一件坏事?如果许多线程正在写和读,你应该进行同步化,否则写可能会被中断,而乱七八糟的会被写,当读线程可能正在读一些没有完全写的东西时,你还没有回答我的问题。应用程序中发生了什么使其成为必需的事情?序列化强烈地意味着顺序化。对象流是流,而不是随机访问文件。