linux的网络io有5种
(1)阻塞IO-(对应Java-Bio):
银行有一个业务员,她负责收集单业务,第一个办理业务的人单子没填好,她就一直等着他填好,后面其他的人都不给办理,她自己也不休息干等着,也不去通知同事,直到这个人的业务单填好。
(2)非阻塞I/O:
银行有一个业务员,她负责收集单业务,第一个办理业务的人单子没填好,她就告诉他填好,然后就立刻告诉同事还没人填好,然后再去等着,看第一个人是否填好了或者后面的某个人是否填好了,再立刻告诉她的同事。
(3)I/O复用(jdk1.4对应Java-Nio):
银行有一个业务员,她负责收集单业务,所以她就喊,谁的单子填好了,都交给我,然后她把那些单子一批拿走让同事处理,过会儿再来收一次单子,收单子的同时也发新的单子。
(4)信号驱动I/O:
银行有一个业务员,她负责收集单业务,她先把业务单发给那些人,让他们填好以后再来找她,她再把这些单子转交给她的同事,然后她又去等着给新的客人发单子。
(5)异步I/O(jdk1.7对应Java-Nio2):
银行有一个业务员,她不再负责收单业务了,她只负责发业务单,她先把业务单发给那些人,同时她就告诉他们,让他们填好以后直接去找她的同事办理业务,然后她再告诉她的同事有这么一回事,等那些人填好后就直接去找她的同事了,她则只负责发单子和通知她的同事,不再负责收单子了。
原文地址:http://www.cnblogs.com/really-dt/p/3799373.html