进程(p)运行,idle与PyCharm的不同

背景:

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值