python多处理在jupyter笔记本中不起作用

2024-04-19 12:02:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试运行多处理的简单示例,但它不起作用

当我尝试在工作中使用线程或常规方式运行相同的函数时

多处理(不工作):


import multiprocessing 

def do_something():
    print('Sleeping 1 second...')
    time.sleep(1)
    print('Done sleeping')

p1 = multiprocessing.Process(target=do_something)
p2 = multiprocessing.Process(target=do_something)

p1.start()
p2.start()

带线程(工作):


import threading

def do_something():
    print('Sleeping 1 second...')
    time.sleep(1)
    print('Done sleeping')

t1 = threading.Thread(target=do_something)
t2 = threading.Thread(target=do_something)
t1.start()
t2.start()


Tags: importtargettimedefsleep线程multiprocessingdo
1条回答
网友
1楼 · 发布于 2024-04-19 12:02:24

为了使代码正常工作,您需要将所有需求放在一个单元格中,然后运行它

from multiprocessing import Pool
import other/modules/...

def do_something(arg1):
    print('Sleeping 1 second...')
    time.sleep(1)
    print('Done sleeping')

if __name__ == '__main__':
   pool = Pool(os.cpu_count()) 
   pool.map(do_something, list_of_args)

相关问题 更多 >