快轉到主要內容

Concurrency Programming

Multiprocessing, Multithreading and Asyncio in Python Part 1 - Basic Concept

·2120 字·5 分鐘
Python 的效能瓶頸在幾年前一直為人詬病, 但在開發者的努力之下,Python 3.4 開始出現了 Asyncio 可以在特定情境下提升效能, 到了 Python 3.13 更出現了可選擇性關閉 GIL 的 Free-threaded (PEP-703) 設計, 結合過去的 Multiprocessing 和 Multithreading, 我整理了一下這三項技術適合的原理、差異和使用情境做了幾篇紀錄。 這一篇先簡單介紹三者的基本概念和適用情境。

Python Coroutine Asyncio

·1102 字·3 分鐘
在出現 asyncio 前, 當一隻 Python 程式有很多需要並行執行的 task, 想要提升程式效能, 只能選用 multiprocessing 或 threading; Python 3.4 之後又多出了 asyncio 的選擇。 asyncio 可以用來撰寫 coroutines, 並使用 event loop 並行執行 coroutines, 減少程式不必要的等待時間以提升效能。