它们旨在(略有)不同的目的和/或要求。CPython(典型的主线Python实现)仍然具有全局解释器锁,因此多线程应用程序(当今实现并行处理的标准方式)不是最佳选择。这就是为什么
multiprocessing
可能
要优先于
threading。但是并不是每个问题都可以有效地分解为[几乎独立的]部分,因此可能需要大量的进程间通信。这就是为什么在一般情况下
multiprocessing可能不受欢迎的原因
threading。
asyncio(该技术不仅在Python中可用,其他语言和/或框架也有此技术,例如Boost.ASIO)是一种有效地处理来自许多同时源的大量I
/ O操作而无需执行并行代码的方法。 。因此,这仅是针对特定任务的解决方案(的确是一个不错的解决方案!),而不是通常用于并行处理的解决方案。



