首页 > 代码库 > 《Cracking the Coding Interview》——第16章:线程与锁——题目1

《Cracking the Coding Interview》——第16章:线程与锁——题目1

2014-04-27 19:09

题目:线程和进程有什么区别?

解法:理论题,操作系统教材上应该有很详细的解释。我回忆了一下,写了如下几点。

代码:

 1 // 16.1 What is the difference between process and thread?
 2 Answer:
 3     Process:
 4         1. Basic element of resource allocation in the operating system.
 5         2. Possesses independent resources:
 6             a. code segment
 7             b. data segment
 8                 i. constant data
 9                 ii. global variable
10                 iii. stack
11                 iv. heap
12             c. register
13             d. program counter
14         3. Have independent virtual address mapping.
15         4. It has life cycle, it is running, in contrast to a program.
16     Thread:
17         1. Basic element of CPU scheduling.
18         2. Possesses part of independent resources:
19             a. register
20             b. stack
21             c. program counter
22         3. Multiple threads share part of resources in same process:
23             a. code segment
24             b. data segment
25                 i. constant data
26                 ii. global variable
27                 iii. heap
28         4. All threads in a process share the same address space.
29         5. It has life cycle