Java 的 NIO 提供了很多有用的特性。其中之一是在通道上进行非阻塞写操作的可能性。这意味着 write 方法在写入完成之前不会阻塞。
但是,即使方法没有阻塞,是否仍然提供所有写入的写入顺序与调用写入的顺序相同?
您考虑的情况不太可能,考虑到 NIO api 不允许程序在前一次写入完成之前在同一线程内写入同一通道。抛出WritePendingException 。从文档:
尝试写入异步套接字通道并且先前的写入尚未完成时引发未经检查的异常。
构建异步 API 的方式,您最多可以尝试从不同的线程写入,或者等到第一次写入完成后再启动另一个