Skip to content Skip to sidebar Skip to footer

Multiprocessing Print Statement Doesn't Work In Spyder Ide

On a machine running Windows Server 2012 R2, in the Spyder IDE from Anaconda and running Python 3.7 with the following code: import time import multiprocessing start=time.perf_cou

Solution 1:

When I ran your code, I get the following output. Can you try running your code in another ide/ cmd line/ terminal?

import multiprocessing

start=time.perf_counter()

defdo_something():
    print('func start')
    time.sleep(1)
    print('func end')

if __name__=='__main__':
    print('name is main')
    p1=multiprocessing.Process(target=do_something)
    p1.start()
    p1.join()

finish=time.perf_counter()

print('\n\nProgram completed in '+str(round((finish-start),2))+'s')
print('Goodbye!')

Outputs:

name is main


Program completed in0.0s
Goodbye!
funcstartfuncendProgram completed in1.27s
Goodbye!

The above result is not probably what you expect. In order to achieve, what you want, you need to indent the outer print section so that it appears within the main call.

import time
import multiprocessing

start=time.perf_counter()

defdo_something():
    print('func start')
    time.sleep(1)
    print('func end')

if __name__=='__main__':
    print('name is main')
    p1=multiprocessing.Process(target=do_something)
    p1.start()
    p1.join()

    finish=time.perf_counter()

    print('\n\nProgram completed in '+str(round((finish-start),2))+'s')
    print('Goodbye!')

Outputs:

name is main
funcstartfuncendProgram completed in1.33s
Goodbye!

Post a Comment for "Multiprocessing Print Statement Doesn't Work In Spyder Ide"