我正在努力理解这个问题。我做了一些研究,发现多线程任务比顺序任务要慢得多。受人尊敬的David Beazley在他的一些并发任务中也提到了这一点。为了实现类似的(类型)行为,我可以使用多处理模块生成一个新进程,但生成一个进程比生成一个线程需要更多的时间。所以,我想知道我可以使用线程模块而不是I/O绑定任务的用例是什么。
实际限制是CPython的限制,而不是语言的限制。鉴于此,线程可以用于运行并发任务,只要(在CPython中)只有一个任务具有python代码。
除了IO,一个例子是c扩展,它执行冗长的计算并释放GIL(在CPython的情况下)。