python 最容易理解的多程序demo

2021-09-02 06:34:22 字數 1045 閱讀 4509

建立乙個簡單的多程序任務只需要5步:

1.建立任務的函式,準備多執行緒呼叫

2.建立程序池,並指定程序池中線程的個數

3. 程序池呼叫步驟1建立的函式,開啟程序執行任務 

4.關閉程序池 pool.close()

5.判斷是否需要等待所有程序結束再執行主函式pool.join()

# coding=utf-8

from multiprocessing import process, pool

import os, sys, logging

from datetime import datetime

def worker(name):

print "worker, runing" + name + ": " + str(datetime.now())

a = [1,2,3]

sleep(2)

print "find_same_city, stop" + name + ": " + str(datetime.now())

return len(a)

if __name__ == "__main__":

pool = pool(processes=5) # 建立有5個程序的程序池

processes1 =

for i in range(10): # 將10個任務放入程序池執行

name = "程序%d:"%i

pool.close() # 關閉程序池,不可再往程序池放任務

pool.join() # join 執行緒池,目的是等待程序池中所有程序執行完再執行主程式

for res in processes1:

result = res.get() # 對佇列中的程序獲取返回值,即worker的return

print result

print "all over"

多程序有個坑就是如果返回值太大,任務在join之後會浪費很多時間(任務需要將各個程序的返回值copy乙份)。因此如果需要同步的資料太大,應盡量避免使用該方式同步。

python多程序 python多程序

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

python多程序的坑 Python多程序相關的坑

python的multiprocessing模組實現了多程序功能,但官方文件上只有一些比較簡單的用法,主要是使用函式作為process的target,而如何在class中使用多程序並沒有多講解。google出兩篇比較詳細的文章,建議從它們入門 下面記錄一下自己這週在python多程序上碰到的坑 建立...

python多程序 Python多程序實踐

建立程序方式如下 可以通過lock鎖機制實現共享鎖,但比較常用的方式還是以上這些方式,效率更高,更安全。使用方式 構造 類方法 使用方式 構造 更多型別支援一般使用manager,支援的型別包括list,dict,namespace,lock,rlock,semaphore,boundedsemap...