异步的IO操作最终是交给谁去做

来源:4-2 同步、异步、阻塞和非阻塞

人土土zzzzz

2018-11-06

老师,请问异步的IO操作最终是交给谁去做了?他们跟主线程之间是什么样一种关系?操作系统开多几个线程去执行这几个IO操作吗?

写回答

1回答

bobby

2018-11-08

其实都是交给cpu执行,只是阻塞io很多时候都是io在操作 所以造成了大量的时候在等待io完成,cpu此时属于空等的状态,非阻塞io操作是立即提交以后就立马去执行其他任务不用等到回复,所以问题在于非阻塞, 这样cpu的利用率就立马上来了,关键是怎么知道什么时候io完成了,这个时候主要的调度逻辑是事件循环在完成,所以事件循环既要完成io操作完成后的调度工作又要完成将阻塞任务提交的工作,这样的效率就会比平常我们用的阻塞io操作效率高很多

1
0

Tornado从入门到进阶 打造支持高并发的技术论坛

异步IO并发编程/Form,ORM/aiomysql、peewee-async/epoll

593 学习 · 350 问题

查看课程