python多程序非同步併發處理

2021-09-24 01:27:37 字數 1148 閱讀 6854

如下將實現乙個簡單的多程序,非同步的,併發機制:

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...