Java多线程系列(1)

本文介绍了非阻塞I/O的基本概念及其实现技术,包括I/O多路复用、轮询和信号处理。详细解释了每种技术的工作原理及其应用场景。

Nonblocking I/O:程序在继续执行一个从终端等读数据操作的后续操作时,通常回等到至少读到一个数据为止,这就是blocking I/O。  (by Johnny Deng)

传统上:有以下三种技术可以实现Nonblocking的I/O:

1)I/O Mutilplexing:处理所有输入来源,并使用如select()的系统调用方式来分配数据,开发者只需要登记一个会在特定来源有数据时callback的函数就好。

2)Polling:测试某特定来源是否有数据可用。如果有,就处理,没有就去干别的task。如像poll()的系统调用。在Java1.4中的nio包中的类就应该支持这种方式,如SelectableChannel支持nonbloking的模式。

3)signal:以一个文件描述符来代表输入来源,因此在数据可从该输入来源取得时会送入一个异布的消息给程序。此消息会让程序中断来处理输入。Java似乎不支持这种形式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值