In the simple program # importing the multiprocessing module import multiprocessing def print_cube(num): print("Cube: {}".format(num * num * num)) def print_square(num): print("Square: {}".format(num * num)) if __name__ == "__main__": # creating processes p1 = multiprocessing.Process(target=print_square, args=(10, )) p2 = multiprocessing.Process(target=print_cube, args=(10, )) # starting process 1 p1.start() # starting process 2 p2.start() # wait until process 1 is finished p1.join() # wait until process 2 is finished p2.join() # both processes finished print("Done!") the Python Shell 3.8.2 (both the 32 and 64 Bit version) does not execute the multiprocessing.Process instruction, and outputs = RESTART: C:\Users\gerhartr\Desktop\Python\Concurrent\Multiprocessing\python1.py Done!
Using the cmd python.exe command, the correct output Square: 100 Cube: 1000 Done! This error can be documented also in other programs which uses the multiprocessing.Process instruction. best Gerhard
On 4/11/20 4:37 AM, Gerhard Tröster wrote:
the Python Shell 3.8.2 (both the 32 and 64 Bit version) does not execute the multiprocessing.Process instruction, and outputs
= RESTART: C:\Users\gerhartr\Desktop\Python\Concurrent\Multiprocessing\python1.py Done!
Using the cmd python.exe command, the correct output Gerhard,
This isn't the right place for this question, you may want to hunt around on the Internet for better places. StackOverflow might be a place you could get more detailed answers. It seems like you're referring to IDLE when you say "the Python Shell" above. And indeed if I paste your code into IDLE, I see the behavior you mention. There's a reason for it that has to do with the design of IDLE, it's not actually that it's not working, but that when using multiprocessing (which forks) the output ends up not able to make it back to the shell window any longer (the socket is not duplicated). Just to clear up any doubt, IDLE is not Python, although it comes with Python and is written in Python. You might want to try a different development environment if this behavior is problematic for you, though it seems you already have a workaround: run the code directly from a shell.
participants (2)
-
Gerhard Tröster -
Mats Wichmann