cv_gordon

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: :: :: 管理 ::

 

进程和线程的主要区别

https://blog.csdn.net/kuangsonghan/article/details/80674777

根本区别:进程是操作系统资源分配的最小单元,线程是任务调度和执行的基本单位。

 

包含关系:每个进程至少有一个线程,主线程。进程中可以创建多个线程。

 

创建和销毁:创建进程调用fork或者vfork,创建线程调用pthread_create。进程结束后,它拥有的所用线程都将销毁;线程结束后不会影响同个进程中的其他线程。

 

在开销方面:进程切换开销大,线程切换开销小。每个进程都有独立的代码和数据空间(程序上下文),进程之间的切换开销大。线程可视为轻量化的进程,同一个进程中的所有线程共享进程的资源,每个线程都有独立的栈和程序计数器(PC),线程之间切换的开销小。

 

所处环境:操作系统中能同时运行多个进程(APP);每个进程中可以运行多个线程。线程通过CPU调度和执行,在CPU中,同一个时间片只有一个线程在运行。

 

内存分配:系统创建进程时会给每个进程创建不同的内存空间;创建线程时,除了CPU之外,系统不会给线程分配内存。线程使用的资源来自其所属进程的资源,线程之间共享资源,因此要进行同步和互斥。

 

死锁?死锁产生的原因?死锁的必要条件?如何处理死锁?

进程的几种状态?

https://blog.csdn.net/zhou753099943/article/details/51771220

 

posted on 2018-11-03 23:52  cv_gordon  阅读(1105)  评论(0编辑  收藏  举报