finallymultiprocessing provides many more tools than these examples deployincluding conditioneventand semaphore synchronization toolsand local and remote managers that implement servers for shared object for instanceexample - demonstrates its support for pools--spawned children that work in concert on given task example - pp \system\processes\multi py "plus much moreprocess poolsmanagerslocksconditionimport os from multiprocessing import pool def powers( )#print(os getpid()return * enable to watch children if __name__ ='__main__'workers pool(processes= results workers map(powers[ ]* print(results[: ]print(results[- :]results workers map(powersrange( )print(results[: ]print(results[- :]when runpython arranges to delegate portions of the task to workers run in parallelc:\pp \system\processesmulti py [ [ [ [ and little less to be fairbesides such additional features and toolsmultiprocessing also comes with additional constraints beyond those we've already covered (pickleabilitymutable stateand so onfor exampleconsider the following sort of codedef action(arg arg )print(arg arg if __name__ ='__main__'process(target=actionargs=('spam''eggs')start(shell waits for child this works as expectedbut if we change the last line to the following it fails on windows because lambdas are not pickleable (reallynot importable)process(target=(lambdaaction('spam''eggs'))start( parallel system tools fails!-not pickleable