进程和线程的主要区别
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