如下將實現乙個簡單的多程序,非同步的,併發機制:
1. 一些初始定義
import multiprocessing
aaa = # 多個程序公用的公共變數(用於多個程序同時要處理的那個變數)
# 將用於多程序分布式散開的乙個原本list (for遍歷將做12次)
test_list = [3,4,5,6,7,8,9,10,11,12,13,14]
# 併發程序數(也就是上面的只做4次了)
processesnum = 3
# 每乙個程序將處理4個
loopnum = len(test_list) / processesnum
2. 定義實現的函式
# 要實現的核心功能
def get_info(lit, ccc):
bbb =
for ii in lit:
x = ii * 2 + ccc
print x
return bbb
# callback處理:即多程序中有retrun值的情況
def process_callback_info(res):
global aaa
print aaa
3. 實現多程序處理
pool = multiprocessing.pool(processes=processesnum)
ccc = 3
for i in range(processesnum):
if i < processesnum - 1:
lit = test_list[loopnum * i:loopnum * (i + 1)]
else:
lit = test_list[loopnum * i:]
print 'start pool %d,hotellist is %d' % (i, len(lit))
pool.close()
pool.join()
4 執行結果:
python多程序併發
由於python下呼叫linux的shell命令都需要等待返回,所以常常我們設定的多執行緒都達不到效果,因此在呼叫shell命令不需要返回時,使用threading模組並不是最好的方法。python提供了非常好用的多程序包multiprocessing,你只需要定義乙個函式,python會替你完成其...
python併發之多程序
一 multiprocessing模組介紹 python中的多執行緒無法利用多核優勢,如果想要充分地使用多核cpu的資源 os.cpu count 檢視 在python中大部分情況需要使用多程序。python提供了multiprocessing。multiprocessing模組用來開啟子程序,並在...
python併發程式設計 多程序
import os import time from multiprocessing import process def func args,args2 print args,args2 time.sleep 3 print 子程序 os.getpid print 子程序的父程序 os.getpp...