当前位置:网站首页>Differences between pycharm and idle and process -- join() in vs Code

Differences between pycharm and idle and process -- join() in vs Code

2022-07-05 07:29:00 work-harder

background :

win8.1, idle - python 3.9.7 Bring their own , pycharm2021.3.1

vs code 1.64.2 [ to update ]

The phenomenon :

process Of join(timeout), stay idle and pycharm neutralize ?

No matter what timeout The numerical ratio of sub process (sleep) The waiting time is obviously long or short , Can't see the result . And in the demo pycharm2017.2.7 in , be ( Output ) The results are different .

[ to update ]

terms of settlement :

vs code 1.64.2, You can see p.join(), p.join(timeout) The effect of .

example , See the comments in the code for specific information

from multiprocessing import Process
from time import sleep


def worker(interval):
    print("work start")
    sleep(interval)
    print("work end")


if __name__ == "__main__":
    print(" The main process executes ")

    #  Create child process 
    p = Process(target=worker, args=(5,))

    #p.join(timeout=1) # stay pycharm2021.3.1 in , It doesn't work ?  No warning : ony for started process
    #p.run()  #  perform run_test call ,pycharm You can also do so. 
    p.start() # idle Call only in , Don't execute ( But enforcement sleep The sentence of . There may be other ?),pycharm Medium can 
    p.join(timeout=1) #  It doesn't work . The following end will not be executed first print, At the end of the execution sub process print

    # The following is pycharm2017.2.7 Demonstration results in , But in pycharm2021.3.1 in , I don't know how to realize .
    ## Before executing the following statement , Need to wait for a period of time , Side subprocess execution 
    ## To ensure that the main process always waits longer than the child process , use join function .
    ##p.join() # here , It will wait for the subprocess to finish executing before continuing the following statement . or 
    ##p.join(timeout=10) 
    ##  there timeout Decide the order of execution : 
    ## Less than the waiting time of the child process , First, execute the , Then execute the sub process ;
    ## Greater than the waiting time of the child process , Then execute the subsequent statements after executing the subprocess .

    print(" The main process has finished executing ")


【vs code 1.64.2 Output result of

原网站

版权声明
本文为[work-harder]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/02/202202140555475384.html