java nio笔记

只有面向流(stream-oriented)的通道,如sockets和pipes才能使用非阻塞模式

将非阻塞I/O和选择器组合起来可以使您的程序利用多路复用I/O(multiplexed I/O)

当I/O操作被中断时总是关闭通道

文件通道总是阻塞式

锁与文件关联,而不是与通道关联。我们使用锁来判优外部进程,而不是判优同一个Java虚拟机上的线程

不同于SocketChannel(必须连接了才有用并且只能连接一次),DatagramChannel对象可以任意次数地进行连接或断开连接

下面列出了一些选择数据报socket而非流socket的理由:

您的程序可以承受数据丢失或无序的数据。

您希望“发射后不管”(fire and forget)而不需要知道您发送的包是否已接收。

数据吞吐量比可靠性更重要。

您需要同时发送数据给多个接受者(多播或者广播)。

包隐喻比流隐喻更适合手边的任务。

选择器才是提供管理功能的对象,而不是可选择通道对象。选择器对象对注册到它之上的通道执行就绪选择,并管理选择键


你可能感兴趣的:(java nio笔记)