作者:LEEstarmmmmm | 2023-09-11 12:41
我是java nio的新手,我正在阅读java nio教程,任何人都可以解释什么是阻塞模式.在教程中我读到 - 'FileChannel不能设置为非阻塞模式.它总是以阻塞模式运行'
1> David Schwar..:
阻塞模式意味着当I/O操作成功或失败之前,当前线程无法前进.在非阻塞模式下,如果操作不能立即前进,则控制返回到线程,以便稍后可以再次尝试操作.
从历史上看,"快速"I/O(例如访问磁盘)仅在阻塞模式下提供.在两种模式下都提供"慢速"I/O,例如等待网络响应的操作.
@Boris the Spider:*both*.当操作暗示"返回缓冲区的当前内容"时,稍后再次成功尝试它意味着缓冲区已在后台同时填充...在NIO中,使用非阻塞的"SelectableChannel"意味着您可以使用`选择器`监视后台传输的进度.相比之下,`AsynchronousFileChannel`允许您使用回调,但这是一种与非阻塞通道不同的异步传输.