进程和线程的一些问题

因为进程是操作系统调度资源基本单位,这里的资源当然包含了CPU寄存器资源,所以只有一个CPU的话,但是想要执行多任务,

只能让多个进程轮流占用CPU

真正的并行是CPU的数量和执行任务(进程)的数量相等

线程中,多个线程可能会共享同一个变量。

由于线程由操作系统调度,调度行为无法预知,所以存取同一个共享变量的时候,可能会发生错误

为了避免错误,需要在存取的时候,对共享的变量加锁

但一旦加了锁,加锁的那段代码只能在同一时间一个进程执行,这样就降低了并发性

假如线程T1在占用锁L1,此时需要再获取锁L2,同时线程T2在占用锁L2,想要获取锁L1,这样就发生了死锁

各个进程中的资源之间相互独立,互不影响,稳定性好;但创建进程开销大

各个线程从属于同一个进程,一个进程崩溃了整个进程也就崩溃了,多进程不稳定;但是创建的开销小

原文地址:https://www.cnblogs.com/geeklove01/p/8157586.html