线程与进程的区别
1. 定义:
进程: 执行中一段程序, 一旦程序被载入到内存中并准备执行 他就是一个进程
进程是资源分配的基本概念 调度运行的基本单位 系统中的并发执行的单位
线程: 单个进程中执行的每个任务就是一个线程,线程是进程中执行运算的最小单位
进程里可以有多个线程
1. 线程是轻量级的进程 与进程相比 线程给操作系统带来创建、维护、和管理的负担要轻 意味着线程的代价或开销比较小
2. 线程没有地址空间 线程包含在进程的地址空间中 线程上下文只包含一个堆栈、一个寄存器、一个优先权,
3. 线程文本包含在他的进程的文本片段中, 进程拥有的所有资源都属于线程
4. 所有线程共享进程的资源与内存 (常量, 全局变量与静态变量,扩展段(堆存储))
5. 每个线程有自己的栈段 寄存器的内容 栈段又叫运行时段 存所有局部变量与临时变量
6. 父与子进程使用进程间通信机制 同一进程的线程通过读取写入数据到进程变量通信
7. 线程的级别是相同的 进程内的任何线程都可以销毁、挂起、恢复和更改其它线程的优先权,进程中任何线程都可以销毁进程,销毁主线程将导致该进程的销毁,对主线程的修改可能影响所有的线程。
8. 子进程不能控制其它进程
进程和线程都有ID/寄存器组、状态和优先权、信息块,创建后都可更改自己的属性,都可与父进程共享资源、都不能直接访问其他无关进程或线程的资源。