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 - doPost 跳过response.sendRedirect()

java - openjdk 平台二进制文件在构建 android 应用程序时使用了太多内存

c# - 集合被修改;枚举操作可能无法执行。 C#

java/swing : gui froze, 没有线程挂起

从属性文件读取时出现 java.util.ConcurrentModificationException

java - 'IDENTIFIER' 规则也使用 ANTLR Lexer 语法中的关键字

JavaFX - 无法使用已签名的应用程序访问文件系统

c++ - 在多线程环境中使用 std::string 时 Clang 的线程清理器警告

Java,停止(中断)线程

c# - 如何每天在同一时间在 C# 服务中执行一次代码?