因为进程是操作系统调度资源的基本单位,这里的资源当然包含了CPU寄存器资源,所以只有一个CPU的话,但是想要执行多任务,
只能让多个进程轮流占用CPU
真正的并行是CPU的数量和执行任务(进程)的数量相等。
在线程中,多个线程可能会共享同一个变量。
由于线程由操作系统调度,调度行为无法预知,所以存取同一个共享变量的时候,可能会发生错误。
为了避免错误,需要在存取的时候,对共享的变量加锁。
但一旦加了锁,加锁的那段代码只能在同一时间被一个进程执行,这样就降低了并发性。
假如线程T1在占用锁L1,此时需要再获取锁L2,同时线程T2在占用锁L2,想要获取锁L1,这样就发生了死锁。
各个进程中的资源之间相互独立,互不影响,稳定性好;但创建进程开销大。
各个线程从属于同一个进程,一个进程崩溃了整个进程也就崩溃了,多进程不稳定;但是创建的开销小。