Monday, December 13, 2010

Process與Thread

一個應用程式,會開啟一個Process
一個Process,可以被程式設計師開出多個Thread

同一個process內的Threads可以共享Code、Data Section及OS Resources

一個Thread 就是一個小型的 Process ,
若我們把 Process 分為兩個部份-----Threads 和 Resources,
Threads 就是這個 Process 的動態執行者(Dynamic Object)

附上Process和Thread的差別
           
The major difference between threads and processes is 
1.Threads share the address space of the process that created it; 
processes have their own address.

2.Threads have direct access to the data segment of its process; 
processes have their own copy of the data segment 
of the parent process. 

3.Threads can directly communicate with other threads of its process; 
processes must use interprocess communication to communicate with sibling processes. 

4.Threads have almost no overhead; processes have considerable overhead.

5.New threads are easily created; new processes require duplication of the parent process.

6.Threads can exercise considerable control over threads of the same process; 
processes can only exercise control over child processes. 

7.Changes to the main thread (cancellation, priority change, etc.) 
may affect the behavior of the other threads of the process; 
changes to the parent process does not affect child processes. 

No comments: