multiprocessing mac osin contrast thread runs within the same process as the original program this means that the process is managed and executed directly by the operating system on one of the processors that are part of the underlying computer hardware the up side of this is that you are able to exploit the underlying parallelism inherent in the physical computer hardware the downside is that process takes more work to set up than the lighter weight threads the constructor for the process class provides the same set of arguments as the thread classnamelyclass multiprocessing process(group=nonetarget=nonename=noneargs=()kwargs={}daemon=nonegroup should always be noneit exists solely for compatibility with the threading api target is the callable object to be invoked by the run(method it defaults to nonemeaning nothing is called name is the process name args is the argument tuple for the target invocation kwargs is dictionary of keyword arguments for the target invocation daemon argument sets the process daemon flag to true or false if none (the default)this flag will be inherited from the creating process as with the thread classthe process constructor should always be called using keyword arguments the process class also provides similar set of methods to the thread class start(start the process' activity this must be called at most once per process object it arranges for the object' run(method to be invoked in separate process join([timeout]if the optional argument timeout is none (the default)the method blocks until the joined process terminates if timeout is positive numberit blocks at most timeout seconds note that the method returns none if its process terminates or if the method times out