+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

列表中的多处理项目-Python,为避免冲突,需要使用队列吗?

发布于2021-04-16 06:51     阅读(1006)     评论(0)     点赞(25)     收藏(4)


0

1

2

3

4

5

6

7

我有一个18k ID的列表,想要执行3个功能,即

  1. fetch_data_from_db(),
  2. data_clean(),
  3. push_data_back_to_db()

对于每个18k记录,我想依次执行1,2,并将输出转储到文件中。3.可以在以后的阶段开始。

为了使其更快完成,我正在尝试通过使用池库在(1,2)周围编写包装函数来进行多进程处理。

from multiprocessing import pool
import time
list_of_18k = [1,2,3,4,5....]

def func(id):
   fetch_data_from_db(id)
   data_clean(id)

if __name__ == '__main__':
  p = pool.Pool()
  res = p.map(func, list_of_18k)

  p.close()
  p.join()

问题是,如果仅以这种方式运行它,它将自动将18k id的列表分发到每个进程(核心),并且没有任何进程会两次读取列表项吗?还是有必要在list_of_18k = []之前使用锁或添加一些队列/管道?


解决方案


暂无回答

0

1

2

3

4

5

6

7



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接: https://www.pythonheidong.com/blog/article/939358/ff8e011cc366ee8bb32b/

来源: python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

25 0
收藏该文
已收藏

评论内容:(最多支持255个字符)