【发布时间】:2019-03-01 01:11:34
【问题描述】:
为什么 InputStream 的 read 方法在没有内容可读取的情况下阻塞资源?
假设我有一个以 RW 模式打开的 RandomAccessFile,我使用文件描述符创建 InputStream / OutputStream。
线程 1 正在尝试从文件中读取,但没有可用的内容。 此时,如果线程 2 尝试写入文件,则会被阻塞。
为什么会这样?
【问题讨论】:
-
你为什么不自己试试看呢?这就是所谓的研究,是开发人员学习的绝佳工具。
-
我做到了。线程被阻塞。我试图理解为什么它会阻止整个资源?
-
如果你已经知道它会阻塞,为什么还要问 if 它会阻塞呢?如果你想问为什么,为什么你的问题是问“会被屏蔽吗?”,而不是“为什么会被屏蔽?”??
-
已更新。我的错。如果你知道,请帮助我理解。
-
真正的问题是,为什么要从文件描述符创建 InputStream / OutputStream,而不是独立创建它们。
标签: java multithreading randomaccessfile