python 實現多程序

2021-09-23 01:59:35 字數 1893 閱讀 1588

方法一:

from urllib import request

from multiprocessing import process

import os

def **********(url,**kwargs):

print('當前程序id:',os.getpid(),os.getppid())

#os.getpid()獲取當前程序id,os.getppid()獲取當前程序父程序id

print('關鍵字引數:',kwargs['pro'])

#檔名

file_name = url.split('/')[-1]

#網路請求

response = request.urlopen(url)#乙個響應物件

#獲取響應的內容

content = response.read()

#儲存with open(file_name,'wb') as fp:

fp.write(content)

if __name__ == '__main__':

url_list = [

'',''

]name_list = ['程序1--張翠花','程序2---趙鐵蛋']

p_list = #程序列表

i = 0

for url in url_list:

n = name_list[i]

i = i+1

p = process(target=**********,name=n,args=(url,),kwargs=)

print('子程序(%s)將要被執行~!'%p.name)

p.start()

for p in p_list:

p.join()#對所有子程序加上阻塞,等到子程序全部執行完畢,再繼續執行主程序

print('主程序id:',os.getpid())

#確保這一句**在所有子程序結束

方法二

from multiprocessing import process

import os

from urllib import request

#步驟1:繼承process類

class process_class(process):

# 因為process類本身也有__init___方法,這個子類相當於重寫了這個方法。

# 但這樣會帶來乙個問題,我們並沒有完成的初始化乙個程序類,所以就不能使用這個類繼承的一些方法和屬性。

#步驟2:使用父類初始化方法初始子類

def __init__(self,url):

process.__init__(self)

self.url = url

#步驟3:重寫process類中的run方法

def run(self):

print('當前程序id:', os.getpid(), os.getppid())

# 檔名

file_name = self.url.split('/')[-1]

# 網路請求

response = request.urlopen(self.url) # 乙個響應物件

# 獲取響應的內容

content = response.read()

# 儲存

with open(file_name, 'wb') as fp:

fp.write(content)

if __name__ == '__main__':

url_list = [

'',''

]for url in url_list:

p = process_class(url)

p.start()

Python實現多程序

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

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 父程序...