|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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则是进程锁。
是不是我参数部分写的有问题啊? |
|