聊聊进程和线程以及进程间通信的方式

先引入一个例子,比如一个银行,有的窗口转门办理存款业务,有的窗口转门办理养老保险业务,有的窗口转门办理农业补贴业务,有一天办理存款业务的窗口忙不过了,窗口的负责人就去花钱雇了几个人来帮忙办理业务,接下来再看进程线程;
一个进程中做多可以开2048个线程,它的内存空间只有2g;但内存不可能完全拿来做线程的栈,所以实际数目要比这个值小;

一、进程和多进程

1、什么是进程
进程是程序的一次执行过程,是系统进行资源分配的最小单位。进程一般由三个部分组成,进程控制块PCB、程序段和数据段。上面例子中办理存款业务就是一个进程;

2、进程有哪些状态
①创建:进程正在被创建,
②就绪:进程获得了处理机以外的一切所需资源,一旦得到了处理机就可以运行
③运行 :进程正在处理机上运行
④阻塞:进程正在等待某一时间而暂停,也称等待状态
⑤结束:正在退出,结束运行
由图可以看出,阻塞到运行是不可能发生
在这里插入图片描述
3、进程的特征
①动态性:进程是一个过程,自然就是动态的,它可以被创建、被暂停终止,具有一定的生命周期,在不停的动态变化。

②独立性:系统内多个进程可以并发执行,就像银行这三大业务可以同时进行,进程实体是一个能独立运行、独立获得资源和接收调度的基本单位

③异步性:进程由于共享资源和协同合作,因此产生了相互制约的关系,进程实体通过进程管理以异步的方式使用处理器和其他资源,系统必须统一调度,依据一定的算法来保证各个进程能够协同运行并共享处理器和其他资源。

④结构特征:每个进程都要配置一个PCB(进程控制块)对其进行描述,从结构上看,进程实体是由程序段、数据段和进程段三部分组成

4、进程和程序的区别
①程序是一段代码,是一个静态概念,而进程是程序的运行过程,是动态概念
②组成不同:程序=代码+数据;进程=代码+数据+堆栈+pcb;
③程序是永存的,进程是暂时的;
④进程具有并发性,而程序没有;
⑤对应关系:一个程序可对应多个进程;一个进程可以执行一个或几个程序;

5、什么是多进程

像上面例子中办理不同业务的窗口就是多进程,

二、线程和多线程

1、什么是线程
是进程的子任务,是资源调度的最小单位,一个进程可以包括多个线程,比如办理存款业务要有许多子任务,比如统计客户信息,把钱存进客户账户,进行信息确认。

2、线程有哪些状态
①新建(New) : Thread thread = new Thread()。线程对象被创建后,就进入了新建状态

②就绪(Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,thread.start()。处于就绪状态的线程,随时可能被CPU调度执行。

③ 运行(Running) : 线程获取CPU权限进行执行。线程只能从就绪状态进入到运行状态。

④阻塞状态(Blocked) : 阻塞状态是线程因为某种原因放弃CPU使用权,暂时停止运行。直到线程进入就绪状态,才有机会转到运行状态。

3、什么是多线程
多个子任务就是多个线程,忙不过来雇人来帮忙,雇人的那个人就是主线程,也是在开启新的线程,但你雇人要花钱,所以线程并不是创建的越多越好

关于多线程部分的内容,请点击这儿
多线程初阶介绍

三、进程和线程的区别和联系

①进程是资源分配的基本单位,线程是资源调度的基本单位。资源分配给进程,同一进程的 所有线程共享该资源

②进程拥有独立的地址空间;线程没有独立的地址空间,同一进程内多个线程共享其资源;

③一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。

④不同进程的线程间利用消息通信的方式实现同步

⑤线程切换比进程切换要快得多

⑥创建和撤销进程的开销更大

四、进程间通信的方式

进程通信指的是进程间的信息交互,有以下方法
1、管道
半双工的通信方式,数据只能单向流动,且只能在有父子进程或兄弟进程的进程间使用,命名管道FIFO允许在无亲缘关系的进程间使用

2、消息队列
消息传递系统中,进程间的数据交换是以格式化的消息为单位的,若通信间的进程不存在共享空间,则必须用消息传递的方式实现进程通信。通信方式包括直接通信和间接通信方式。
在这里插入图片描述

3、共享内存
通信的进程之间存在一块可直接访问的共享空间,通过这块空间进行读写操作实现进程之间的信息交换;比如不同窗口的工人虽然在不同窗口,但归根结底都是银行的人,象征着他们共享内存,但比如员工A正在存款窗口办理登记客户信息业务,它就不可能干别的事,这代表一个线程使用共享内存时,其他线程必须等它结束才能使用
在这里插入图片描述
4、信号量
是一个计数器,用于控制多个进程间对共享资源的访问
5、socket
可用于不统机器间的进程通信

猜你喜欢

转载自blog.csdn.net/chris__x/article/details/107190660