h*****n 发帖数: 209 | 1 【 以下文字转载自 Programming 讨论区 】
发信人: hanuman (神猴), 信区: Programming
标 题: 谁能说说同步/异步IO和阻塞/非阻塞IO的区别?
发信站: BBS 未名空间站 (Mon Jan 24 23:50:56 2011, 美东)
感觉同步I/O就是阻塞I/O,异步I/O就是非阻塞I/O啊,
但是好像这两组概念又不太一样。希望版上的大牛发表高见。 | A*****a 发帖数: 20 | 2 我觉得同步异步指的是IO的结果,阻塞非阻塞指的是IO的过程。
异步IO可以理解为,你告诉OS要从网络读100个字节,OS收到命令,但是不会马上告诉
你是否读完这个100个字节,你可以接着做别的事情;当100个字节读好以后,OS会以某
种方式来通知你。
非阻塞IO是指,调用read/write的时候,read/write会立即返回,返回在OS缓冲区内的
结果。比如,要从网络读100个字节,目前的缓冲区内收到有50个字节,非阻塞的read
就会立即返回50个字节。
同步IO就是系统调用返回的时候会告诉你是否读完或者写完。
阻塞IO就是,read/write会等待IO的完成,而不是只返回缓冲区的数据。 |
|