java nio笔记

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

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

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

文件通道总是阻塞式

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

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

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

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

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

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

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

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

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


转载于:https://my.oschina.net/ugwu/blog/215926

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值