从gevent
文档:
greenlet 都在同一个 OS 线程中运行,并且是协同调度的。
来自asyncio
文档:
该模块提供了使用协程编写单线程并发代码的基础设施。
asyncio
确实提供
尽我所能,我没有遇到任何实现多线程或多进程协同程序的主要 Python 库,即跨多个线程传播协同程序以增加可以建立的 I/O 连接的数量。
我理解协程本质上允许主线程暂停执行这一个 I/O 绑定任务并继续执行下一个 I/O 绑定任务,仅当其中一个 I/O 操作完成并需要处理时才强制中断。如果是这种情况,那么将 I/O 任务分布在多个线程上,每个线程都可以在不同的内核上运行,显然应该会增加您可以发出的请求数量。
也许我误解了协程是如何工作的或者是如何工作的,所以我的问题分为两部分:
是否有可能拥有一个在多个线程(可能在不同的内核上)或多个进程上运行的协程库?
如果有,有这样的图书馆吗?