In this model a one process can have multiple, concurrent implementations paths. The major programs are scheduled to run by the native operating system. It loads and obtains all the necessary softwares and user resources to activate the process. A thread's work may best be defines as a subroutine within the main program. Any thread can implement any one subroutine and at the similar time it can implement other subroutine. Threads communicate with each other through global memory. This needs Synchronization constructs to insure that more than one thread is not updating the similar global address at any time. Threads can be created and destroyed, but the main program remains live to give the necessary shared resources until the application has finished. Threads are commonly associated with shared memory architectures and operating systems.