马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
# processes=[]
#
# for index in range(start_index,end_index):
# if len(processes) < 4:
# processes.append(
# Process(target=analysis, args=(input_data,alldate,index,lock))
# )
# else:
# for process in processes:
# process.start()
# for process in processes:
# process.join()
# processes.clear()
# processes.append(
# Process(target=analysis, args=(input_data,alldate,index,lock))
# )
# for process in processes:
# process.start()
# for process in processes:
# process.join()
# processes.clear()
lock = multiprocessing.Manager().Lock()
pool = multiprocessing.Pool(processes=4)
for index in range(start_index, end_index):
pool.apply_async(analysis, (input_data,alldate,index,lock))
pool.close()
pool.join()
之前本来做的是多进程(以上代码被注释了的部分),可以成功运行,然后想要改为进程池,结果反馈都是这样的D:\python\pypy\pypy3.exe D:/python/works/project3/analysis.py
start date: 2021-06-29
8.153712034225464
Process finished with exit code 0
程序内涉及了数据库的写入,原本用被注释了的多进程代码运行可以运行。改用进程池后,打开数据库一看,一条都没写入,显然是没有成功运行,但是也没有报错。
经查有的人说可以用cmd运行,结果cmd运行的结果也和pycharm的反馈相同。
analysis函数下的第一个参数input_data是个字典,第二个alldate是个列表,index是个数值,lock则是进程锁。
是不是我参数部分写的有问题啊? |