进程和线程的一些问题

Posted geeklove

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了进程和线程的一些问题相关的知识,希望对你有一定的参考价值。

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

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

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

 

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

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

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

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

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

 

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

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

 

以上是关于进程和线程的一些问题的主要内容,如果未能解决你的问题,请参考以下文章

Java同步—线程和进程

线程和进程的区别

进程和线程的区别

多线程Python进程,队列和锁相关的一些问题

多线程和多进程的区别

进程和线程的区别(简要总结)