背景:
win8.1, python idle 3.9.7, pycharm 2021.3.1
现象:
进程(p)创建后运行的代码,在idle中与pycharm不同。
解决办法:
pycharm中可以调用子进程: p.start() 和 p.run()都可以
#idle中,则只有p.run()才可以调用子进程,p.start()不行。
[更新] idle中, p.run()会执行子进程的print语句,但p.start()不会执行print语句。如果子进程中有time.sleep()语句,p.start()也会执行time.sleep()语句。
[更新] 用vs code (我的是1.64.2)可以完全演示p.join() 和 p.join(timeout)的作用
例子
from multiprocessing import Process from time import sleep #更新 def run_test(): print("...run_test 开始...") #更新 sleep(10) #更新 print("...run_test 结束...") #更新 if __name__ == "__main__": print("主进程进行中") #p = Process(target=run_test()) # 不需要调用p.run() p = Process(target=run_test) #p.start() #只在pycharm中可以调用run_test p.run() #在pycharm (2021.3.1) 和 idle(python3.9.7自带)都可以调用run_test
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/212991.html原文链接:https://javaforall.net
