python多线程填坑:报错 Attribute Error: Can’t get attribute ‘你的多线程处理函数’ on <module ‘main’ (built-in)>
jupyter 使用多线程时
from multiprocessing import Pool
def down_temp(data):
print(i)
...
pool=Pool()
for data in range(10):
pool.apply_async(func=down_temp,args=(data))
pool,close()
pool.join()
报错:`Attribute Error: Can't get attribute 'down_temp' on <module '__main__' (built-in)>`
似乎在pycharm中直接这样搞也会出错
解决办法:
使用 if name ==“main”:
把线程池的定义和调用放到这个后面
from multiprocessing import Pool
def down_temp(data):
print(i)
...
if __name__ == "__main__":
pool=Pool()
for data in range(10):
pool.apply_async(func=down_temp,args=(data))
pool,close()
pool.join()
亲测pycharm和Spyder这样可以解决该问题,但是jupyter还是不行。