This section describes modules that can be used to develop multithreaded applications. First, a little terminology and background.
A running program is called a process. Associated with each process is a system state including memory, lists of open files, a program counter that keeps track of the instruction being executed, and a call stack used to hold the local variables of functions. Normally, a process executes statements in a single sequence of control flow. This sequence is sometimes called a thread (or main thread).
When a program creates new processes by using the os.system(), os.fork(), os.spawnv(), and similar system calls, these processes run as independent programs, each with its own set of system resources ...