Python 套件介紹 — aiomultiprocess
覺得我們的內容實用嗎? MyApollo 電子報讀者募集中!歡迎訂閱電子報!
介紹 1 個結合 asyncio 與 multiprocessing 2 個模組的套件 — aiomultiprocess。
aiomultiprocess 能將多個 coroutines 分散到多個 processes 執行,其運作原理其實是每個 process 各自運作 1 個 event loop 以執行 coroutines。之所以會有 aiomultiprocess 是因為 asyncio 雖然可以執行多個 tasks,不過它的效能會被 GIL 所限制,結合 multiprocessing 就可以突破 GIL 的限制。
類似 multiprocessing 模組的 Pool context manager,aiomultiprocess 也有 async 版的同名 Pool 類別能夠使用:
async with Pool() as pool:
results = await pool.map(<coroutine function>, <items>)
如果你有需要將 coroutines 分散到多個 processes 執行的話,可以使用 aiomultiprocess 套件。