tools like the os execcalls we met earlier--by spawning process portably with multiprocessing and overlaying it with new program this waywe start new independent programand effectively work around the lack of the os fork call in standard windows python this generally assumes that the new program doesn' require any resources passed in by the process apiof course (once new program startsit erases that which was running)but it offers portable equivalent to the fork/exec combination on unix furthermoreprograms started this way can still make use of more traditional ipc toolssuch as sockets and fifoswe met earlier in this example - illustrates the technique example - pp \system\processes\multi py "use multiprocessing to start independent programsos fork or notimport os from multiprocessing import process def runprogram(arg)os execlp('python''python''child py'str(arg)if __name__ ='__main__'for in range( )process(target=runprogramargs=( ,)start(print('parent exit'this script starts instances of the child py script we wrote in example - as independent processeswithout waiting for them to finish here' this script at work on windowsafter deleting superfluous system prompt that shows up arbitrarily in the middle of its output (it runs the same on cygwinbut the output is not interleaved there) :\pp \system\processestype child py import ossys print('hello from child'os getpid()sys argv[ ] :\pp \system\processesmulti py parent exit hello from child hello from child hello from child hello from child hello from child this technique isn' possible with threadsbecause all threads run in the same processoverlaying it with new program would kill all its threads though this is unlikely to be as fast as fork/exec combination on unixit at least provides similar and portable functionality on windows when required the multiprocessing module