# 使用进程池多并发执行程序
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)