Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在实现一个使用通用阅读界面的设施。我正在使用 java.lang.Readable 接口,它使用 CharBuffer 将数据写出。
它没有说的是read呼叫是否会阻塞。然而,它确实返回写入缓冲区的字符数量,但对我来说,它也可以表明缓冲区没有足够的空间来写入整个等待的输入,因此只写入了一部分。但是,如果缓冲区有足够的空间,但没有可用的输入(或少于缓冲区可以容纳的字符),会发生什么?将read返回零(或一个小整数)还是会阻塞?
read
是的,它会阻塞。操作完成后,此方法返回添加到缓冲区的 char 值的数量,如果此字符源位于其末尾,则返回 -1。
如果它是非阻塞的,则必须有一种机制来通知它何时变得可读。所以它不能是非阻塞的。