Python中除了multiprocessing,还有什么比较好用的多线程库吗?

Python中除了multiprocessing,还有什么比较好用的多线程库吗?

7 回复

mulitprocessing 不是多进程吗


Python里多线程主要还是用threading,这是标准库自带的,简单直接。不过GIL限制下,多线程更适合I/O密集型任务,比如网络请求、文件读写这种。

如果追求更现代的异步并发,asyncio是现在的主流选择,配合async/await语法写起来很清晰,特别适合高并发的网络应用。

另外,第三方库concurrent.futures里的ThreadPoolExecutor也挺好用,它提供了线程池的抽象,用submit()map()来管理任务比手动管理线程更省心。示例:

from concurrent.futures import ThreadPoolExecutor
import time

def task(name):
    time.sleep(1)
    return f"Task {name} done"

with ThreadPoolExecutor(max_workers=3) as executor:
    futures = [executor.submit(task, i) for i in range(5)]
    for future in futures:
        print(future.result())

简单说,标准库的threadingconcurrent.futures基本够用,异步场景就上asyncio

threading?

multiprocessing.dummy 提供了跟调用进程类似的调用线程的接口,底层还是基于 threading。py3.6 提供给了 concurrent 包,提供了更易于使用的多进程和多线程的功能,具体看官方文档

from concurrent.futures import ThreadPoolExecutor
from concurrent.futures import ProcessPoolExecutor

concurrent.futures

回到顶部