【发布时间】:2020-03-19 16:45:23
【问题描述】:
我在 Spyder 上自学 Python 中的多线程处理,并且正在研究一些相对简单的示例,但突然停止工作。回到以前有效的一些更简单的例子,现在它们似乎没有那么好用了。我想不出我能做些什么来让他们停止工作。以下是我的代码:
import time
import multiprocessing
start = time.perf_counter()
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()
p1.join()
p2.join()
finish = time.perf_counter()
print(f'Finished in {round(finish - start, 2)} second(s)')
它似乎只是像中间部分一样运行:
p1 = multiprocessing.Process(target = do_something)
p2 = multiprocessing.Process(target = do_something)
p1.start()
p2.start()
p1.join()
p2.join()
没有吗?
编辑
唯一的输出是
Finished in 0.64 second(s)
没有错误信息。
【问题讨论】:
-
停止工作是什么意思?报错?
-
它就像多处理代码不存在一样运行,输出“在 0.64 秒内完成”
标签: python python-3.x multithreading python-multiprocessing