java - 多个线程是否应该从同一个 DataInputStream 读取数据?

标签 java multithreading

我希望我的程序获取一个文件,然后根据其字节内容创建 4 个文件。

仅使用主线程,我只需创建一个 DataInputStream 并按顺序执行操作。

现在,我有兴趣使我的程序并发。也许我可以有四个线程 - 每个线程用于创建一个文件。

我不想一次将文件的字节读入内存,因此我的线程需要不断查询 DataInputStream 以使用 read() 流式传输字节>.

我不清楚的是,我的 4 个线程应该在同一个 DataInputStream 上调用 read(),还是每个线程都应该有自己单独的流来读取?

最佳答案

我认为这不是一个好主意。请参阅http://download.java.net/jdk7/archive/b123/docs/api/java/io/DataInputStream.html

DataInputStream is not necessarily safe for multithreaded access. Thread safety is optional and is the responsibility of users of methods in this class.

关于java - 多个线程是否应该从同一个 DataInputStream 读取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22340779/

相关文章:

java - 如何在 Java 中检测发起 HTTP 请求的平台

java - KeyListener 和 MouseListener 不工作

java - 如何更改 JXTaskPaneContainer 的 bg 颜色

c - Mac OS X 上的线程,强制使用多个 CPU

python - 多处理池工作线程中的线程标识符

java - 仅使用不可变数据类型会使 Java 程序线程安全吗?

java - 在 JBoss AS 7 中找不到 JAXB com.sun.xml.internal.bind.v2.ContextFactory 类

java - 流媒体上传/下载

在 Windows 上使用线程的 C Web 服务器

c# - 如何证明多线程在工作?