阻塞IO、非阻塞IO、多路复用IO、信号驱动IO以及异步IO
目前最好的是异步IO!!!!
文章参考:https://www.cnblogs.com/lesroad/p/10804758.html
目标:我去老板家拿苹果走人!!!
区别 | |||||
异步IO | 异步IO |
不需要等到IO执行成功,程序依旧可以继续往下执行。 说白了就是,程序的进行不依赖IO成功执行的结果 |
我走去老板家,发现老板不在, 写便条(等他回家后,把苹果送过来给我),回家 |
用户请求不依赖IO的执行结果 |
cpu:释放 内存:释放 |
同步IO | 阻塞IO |
一定要等到IO执行成功, 程序才会继续往下执行 |
我走去老板家,发现老板不在, 就一直在家门口等着,等老板回来,拿上苹果,回家。 |
用户请求依赖IO的执行结果(比如:实时)
|
cpu:不释放 内存:不释放 |
非阻塞IO |
我走去老板家,发现老板不在,直接回家。 过了一会儿,我又走去老板家,发现老板不在,直接回家。 过了一会儿,我又走去老板家,发现老板在了,拿上苹果,回家。 |
cpu:释放 内存:释放 |
|||
多路复用 |
老板家外有一个保安室。 我走去老板家,问保安室,老板在不在,保安室回答不在,于是我就在保安室等。 又过了一会,保安室又检查了一下主人家,发现主人在了,告诉我主人在了,然后我走进去主人家,拿上苹果,回家 |
cpu:不释放 内存:不释放 |