python单进程爬取没有问题,一开多进程就报错,是什么原因?

图片描述

多进程:

groups = [i*100 for i in range(4)]
p = Pool()
p.map(get_data, groups)
    

单进程:

for i in range(4):
get_data(i*100)

请问这是为什么?望各位走过路过来指点一下,谢谢。

阅读 2.2k
1 个回答

这么写没啥问题:

from multiprocessing import pool
import time


def get_data(v):
    time.sleep(1)
    print(v)


def main():
    groups = [i*100 for i in range(4)]
    p = pool.Pool()
    p.map(get_data, groups)
    p.close()
    p.join()
    print('Done')


if __name__ == '__main__':
    main()

但是,如果多进程代码不放在__name__ == '__main__'中,可能会有问题,IDE对多进程支持的不好

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏