Python多進(jìn)程實(shí)現(xiàn)的方法是什么

小億
83
2024-04-01 21:00:02

Python多進(jìn)程實(shí)現(xiàn)的方法有兩種:使用multiprocessing模塊和使用concurrent.futures模塊。

  1. 使用multiprocessing模塊:通過(guò)創(chuàng)建Process對(duì)象來(lái)實(shí)現(xiàn)多進(jìn)程,可以使用Process類的start()方法啟動(dòng)進(jìn)程,并使用join()方法等待進(jìn)程執(zhí)行完成。以下是一個(gè)使用multiprocessing模塊實(shí)現(xiàn)多進(jìn)程的示例代碼:
import multiprocessing

def worker(num):
    print(f'Worker {num}')

if __name__ == '__main__':
    processes = []
    for i in range(5):
        p = multiprocessing.Process(target=worker, args=(i,))
        processes.append(p)
        p.start()

    for p in processes:
        p.join()
  1. 使用concurrent.futures模塊:通過(guò)ThreadPoolExecutor或ProcessPoolExecutor來(lái)實(shí)現(xiàn)多進(jìn)程,可以使用submit()方法提交任務(wù),并使用result()方法獲取任務(wù)執(zhí)行結(jié)果。以下是一個(gè)使用concurrent.futures模塊實(shí)現(xiàn)多進(jìn)程的示例代碼:
import concurrent.futures

def worker(num):
    return f'Worker {num}'

if __name__ == '__main__':
    with concurrent.futures.ProcessPoolExecutor() as executor:
        results = [executor.submit(worker, i) for i in range(5)]
        for result in concurrent.futures.as_completed(results):
            print(result.result())

這兩種方法都可以實(shí)現(xiàn)多進(jìn)程并發(fā)執(zhí)行任務(wù),具體使用哪種方法取決于具體的需求和場(chǎng)景。

0