溫馨提示×

Python并發(fā)編程進(jìn)程咋控制

小樊
82
2024-11-02 19:04:32
欄目: 編程語言

在Python中,可以使用multiprocessing庫來創(chuàng)建和控制多個(gè)進(jìn)程。這個(gè)庫提供了Process類,可以用來創(chuàng)建和管理進(jìn)程。以下是一些關(guān)于如何使用multiprocessing庫進(jìn)行并發(fā)編程的基本示例:

  1. 導(dǎo)入multiprocessing庫:
import multiprocessing
  1. 創(chuàng)建一個(gè)函數(shù),該函數(shù)將在多個(gè)進(jìn)程中執(zhí)行:
def worker(num):
    print(f"Worker: {num}")
  1. 創(chuàng)建一個(gè)Process對象,將目標(biāo)函數(shù)作為參數(shù)傳遞,并啟動(dòng)進(jìn)程:
process = multiprocessing.Process(target=worker, args=(5,))
process.start()
  1. 等待進(jìn)程完成:
process.join()
  1. 創(chuàng)建多個(gè)進(jìn)程并等待它們?nèi)客瓿桑?/li>
processes = []
for i in range(5):
    p = multiprocessing.Process(target=worker, args=(i,))
    processes.append(p)
    p.start()

for process in processes:
    process.join()
  1. 使用multiprocessing.Pool來并行執(zhí)行一組任務(wù)。例如,以下代碼將worker函數(shù)應(yīng)用于0到9的整數(shù)列表,并將結(jié)果存儲(chǔ)在一個(gè)字典中:
from multiprocessing import Pool

def worker(num):
    return num * num

if __name__ == "__main__":
    with Pool(processes=4) as pool:
        results = pool.map(worker, range(10))
        print(results)

這些示例展示了如何在Python中使用multiprocessing庫創(chuàng)建和控制多個(gè)進(jìn)程。你可以根據(jù)自己的需求調(diào)整這些示例,以實(shí)現(xiàn)更復(fù)雜的并發(fā)任務(wù)。

0