线程与进程的区别

1. 定义:

进程:  执行中一段程序,  一旦程序被载入到内存中并准备执行 他就是一个进程

             进程是资源分配的基本概念 调度运行的基本单位  系统中的并发执行的单位

线程: 单个进程中执行的每个任务就是一个线程,线程是进程中执行运算的最小单位

进程里可以有多个线程

1. 线程是轻量级的进程 与进程相比  线程给操作系统带来创建、维护、和管理的负担要轻 意味着线程的代价或开销比较小

2. 线程没有地址空间  线程包含在进程的地址空间中 线程上下文只包含一个堆栈、一个寄存器、一个优先权,

3. 线程文本包含在他的进程的文本片段中, 进程拥有的所有资源都属于线程 

4. 所有线程共享进程的资源与内存  (常量, 全局变量与静态变量,扩展段(堆存储))

5. 每个线程有自己的栈段  寄存器的内容  栈段又叫运行时段 存所有局部变量与临时变量

6. 父与子进程使用进程间通信机制 同一进程的线程通过读取写入数据到进程变量通信

7. 线程的级别是相同的 进程内的任何线程都可以销毁、挂起、恢复和更改其它线程的优先权,进程中任何线程都可以销毁进程,销毁主线程将导致该进程的销毁,对主线程的修改可能影响所有的线程。

8. 子进程不能控制其它进程

进程和线程都有ID/寄存器组、状态和优先权、信息块,创建后都可更改自己的属性,都可与父进程共享资源、都不能直接访问其他无关进程或线程的资源。

原文地址:https://www.cnblogs.com/moneyss/p/10691471.html