进程、线程、死锁

进程:进程是系统资源分配的(最小)基本单位,是程序的一次执行过程,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。程序是指令、数据及其组织形式的描述,进程是程序的实体。

线程:线程与进程相似,但线程是一个比进程更小的执行单位。线程作为系统资源调度的(最小)基本单位,一个进程在其执行的过程中可以产生多个线程。与进程不同的是同类的多个线程共享进程的堆和方法区资源,但每个线程有自己的程序计数器、虚拟机栈和本地方法栈,所以系统在产生一个线程,或是在各个线程之间作切换工作时,负担要比进程小得多,也正因为如此,线程也被称为轻量级进程。

进程通信(七种方式):

1.管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。

2.有名管道 (namedpipe) :有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。

3.信号量(semophore ) :信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。

4.消息队列( messagequeue ) :消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。

5.信号 (sinal ) :信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

6.共享内存(shared memory ) :共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号两,配合使用,来实现进程间的同步和通信。

7.套接字(socket ) :套接口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同设备及其间的进程通信。

并行:同一时刻        并发:同一时间段

死锁:多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程将永远不能再向前推进,其产生原因为:1.竞争资源;2.进程推进顺序非法

产生所死锁的必要条件:1.互斥条件  2.请求和保持条件   3.不可抢占条件   4.循环等待条件

处理死锁的四种方法:1.预防死锁  2.避免死锁  3.检测死锁  4.解除死锁

 

posted @ 2021-03-31 13:38  痕累  阅读(170)  评论(0编辑  收藏  举报