Python實現多程序

2021-09-08 14:07:48 字數 709 閱讀 1429

python可以實現多執行緒,但是因為global interpreter lock (gil),python的多執行緒只能使用乙個cpu核心,即乙個時間只有乙個執行緒在執行,多執行緒只是不同執行緒之間的切換,對多核cpu來說,就是巨大的浪費。如4核cpu,實際上只利用了乙個核,cpu利用率只有25%。要充分利用多核cpu,可以實現python的多程序。

from multiprocessing import

process, manager

import multiprocessing

生成程序例項,並啟動程序:

p = process(target = function_name, args =(function_args_list))

p.start()

其中function_name是程序執行的函式名稱,function_args_list是函式的引數列表,需要注意的是,以上**必須寫在if __name__ == '__main__':下面,否則會報錯。

程序執行完了再執行父程序後面的**,可以用join()來實現:

p.join()

執行緒可以資料共享,程序是不能資料共享的,要實現資料共享,可以用:

m_list = multiprocessing.manager().list(list)

以上**在程序間共享了列表list。

python 實現多程序

方法一 from urllib import request from multiprocessing import process import os def url,kwargs print 當前程序id os.getpid os.getppid os.getpid 獲取當前程序id,os.ge...

python多程序 python多程序

當有多個非相關任務需要處理時,並行能大大提高處理速度。這裡簡要介紹python的multiprocessing模組。簡單多程序編寫 當我們任務數量確定而且比較少的時候,可以手動為每個任務指定乙個程序來執行。import multiprocessing as mp def f a print a if...

Python多程序 實現多程序的幾種方式

coding utf 8 pid os.fork 1.只用在unix系統中有效,windows系統中無效 2.fork函式呼叫一次,返回兩次 在父程序中返回值為子程序id,在子程序中返回值為0 import os pid os.fork if pid 0 print 執行子程序,子程序pid 父程序...