进程与线程
前言
GitHub:https://github.com/yihonglei/thinking-in-concurrent
一 进程
进程是程序执行的单元,每个进程提供程序执行所需的资源,由操作系统创建、调度、终止使用CPU。
进程具有虚拟地址空间,可执行代码,打开系统对象的句柄,具有安全的上下文,有一个唯一的进程标识符,
环境变量,优先级类,能进行最小和最大工作集大小设定,每个进程至少要有一个线程。
每个进程都是从一个线程开始的,通常称为主线程,但是可以从它创建额外任何线程。
二 线程
线程是进程中可以调度执行的实体。进程的所有线程共享其虚拟地址空间和系统资源。此外,每个线程维护异常处理程序,
调度优先级,线程本地存储,线程唯一标识符,使用系统结构来保存线程上下文直到线程被调度为止。
线程上下文包括线程的机器寄存器集、内核堆栈、线程环境块和线程进程地址空间中的用户堆栈。
线程也可以有自己的安全上下文,可用于模拟客户端。
三 进程和线程区别
1)进程是一个可执行程序,线程只是进程的一个片段,一个进程可以包含多个线程;
2)进程不是轻量级的,线程是轻量级的;
3)进程终止需要更多时间,线程则不需要,因为线程只需要关心自己终止即可,而进程则需要关心自己锁包含的线程情况;
4)进程的创建比线程创建耗时;
5)进程的上下文切换比线程上下文切换耗时;
6)进程孤立的,不共享内存,而线程则可以共享所属进程的内存,即共享内存;
参考文献
https://*.com/questions/200469/what-is-the-difference-between-a-process-and-a-thread
https://www.guru99.com/difference-between-process-and-thread.html
本文地址:https://blog.csdn.net/yhl_jxy/article/details/107590038