Python 可以通過并發和平行運算來提高程序的執行效率。并發是指多個任務交替執行,平行是指多個任務同時執行。在 Python 中,可以使用多線程和多進程來實現并發和平行運算。
多線程
import threading
def func():
print("這是一個線程")
t = threading.Thread(target=func)
t.start()
上述代碼中,使用 threading 模塊創建了一個新的線程,并將函數 func 作為參數傳遞給 Thread 類的構造方法,然后調用 start 方法以啟動線程。
多進程
import multiprocessing
def func():
print("這是一個進程")
p = multiprocessing.Process(target=func)
p.start()
上述代碼中,使用 multiprocessing 模塊創建了一個新的進程,并將函數 func 作為參數傳遞給 Process 類的構造方法,然后調用 start 方法以啟動進程。
同時,Python 還提供了 ThreadPoolExecutor 和 ProcessPoolExecutor 兩個類,可以方便地創建線程池和進程池。
線程池
import concurrent.futures
def func():
print("這是一個線程")
with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
executor.submit(func)
上述代碼中,使用 concurrent.futures 模塊創建了一個最大容量為 5 的線程池,并將函數 func 作為參數傳遞給 submit 方法,該方法會自動選擇一個空閑的線程執行。
進程池
import concurrent.futures
def func():
print("這是一個進程")
with concurrent.futures.ProcessPoolExecutor(max_workers=5) as executor:
executor.submit(func)
上述代碼中,使用 concurrent.futures 模塊創建了一個最大容量為 5 的進程池,并將函數 func 作為參數傳遞給 submit 方法,該方法會自動選擇一個空閑的進程執行。