# 使用进程池多并发执行程序 from multiprocessing import Pool,Value,Lock,Manager import os,time,random import multiprocessing import logging import sys def run_task(name,requestCount,countList): # with lock: requestCount.value=requestCount.value+1 print('计数:',requestCount.value) countList.append(requestCount.value) time.sleep(0.1) print('run task %s (%s)'%(name,os.getpid())) sys.stdout.flush() if __name__=="__main__": # 进程日志 # 设置日志输出到控制台 multiprocessing.log_to_stderr() logger=multiprocessing.get_logger() logger.setLevel(logging.INFO) m=Manager() reqeustCount=m.Value('i',0) countList=m.list([]) print('Parent process: ',os.getpid()) # lock=m.Lock() p=Pool() for i in range(5): p.apply_async(run_task,args=(str(i),reqeustCount,countList)) p.close() p.join() print('end!') print(reqeustCount.value) print(countList)