asyincio异步执行阻塞io需要利用多线程?

来源:13-5 ThreadPollExecutor 和 asycio 完成阻塞 IO 请求

Aioria_

2020-01-04

asyincio异步执行阻塞io需要利用多线程,那为什么不直接用多线程或者线程池呢?结合使用不是多此一举吗?

写回答

1回答

bobby

2020-01-05

你这里已经说了是执行阻塞io才利用多线程, 还有一些非阻塞io呢?使用阻塞io的目的是因为没有办法某些库还不支持异步io,最理想的情况是都支持异步io,而且以后的方向也是大量的库都会开始支持异步io的

0
2
bobby
回复
Aioria_
是的, python的协程就是这个机制,所以基于这个考虑,基本上所有的协程库,比如twisted和asyncio在一开始启动服务器的时候都会同时启动一个线程池,同时开发一些接口允许将同步的io接口提交到线程池中运行,另一些新的语言比如go,因为出现的比较晚,一开始就把自己的内部底层的io库就实现成了可以异步io的模式
2020-01-06
共2条回复

Python3高级核心技术97讲,高级进阶的必学课程

socket编程/多线程/多进程/线程池/asyncio并发编程/协程和异步IO

2121 学习 · 551 问题

查看课程