学习安卓分享

计算机-进程、线程、进程池、进程三态、同步、异步、并发、并行、串

2021-03-24  本文已影响0人  张都尉

一进程, 线程

1.进程

什么是进程?

精简重点

进程是申请一块内存空间,将数据放到内存空间中去, 是申请数据的过程是最小的资源管理单元

程序与进程的区别

进程之间交互

2.线程

什么是线程

精简重点

是进程的一条流水线, 只用来执行程序,而不涉及到申请资源, 是程序的实际执行者最小的执行单元

线程之间交互

3.进程与线程的关系

例子:

我们打开一个聊天软件,这就是开启了一个进程;当我们在软件里面打开一些功能,比如空间, 扫一扫, 设置...,这些操作就是线程

所以可以说 "进程" 包含 "线程", "线程" 是 "进程" 的子集

进程是线程的容器

工厂流水线例子:

image.png

4.总结

二.并行, 并发, 串行

单核下使用多道技术实现

并行必须有多核才能实现,否则只能实现并发(伪并行)

四.任务运行的三种状态

进程在运行的过程中不断地改变其运行状态

通常一个运行的进程必须具有三种状态:就绪态, 运行态, 阻塞态

1.就绪态 (Ready)

2.运行态 (Running)

3.阻塞态 (Blocked)(sleep)

4.进程三种状态 间的转换

一个进程在运行期间, 会不断地在一种状态切换到另一只种状态

他可以是多次处于就绪态和运行态, 也可以多次处于阻塞态, 下图是三种状态的转换图


就绪态➠➠运行态

处于就绪态的进程, 当进程调度程序为之分配了CPU的时间片后, 该进程就会由就绪态转变成运行态

运行态➠➠就绪态

处于运行态的进程在运行过程中, 因为分配的时间片用完了, 于是失去了CPU的使用权限, 运行态就会重新转为就绪态

运行态➠➠阻塞态

正在运行的进程由于遇到I/O操作或被更高优先级的任务抢走CPU使用权限而无法继续执行, 便从运行态转为阻塞态

阻塞态➠➠就绪态

处于阻塞态的进程, 若其等待的事情已经处理完毕, 于是进程从阻塞态转为就绪态

四.任务提交的两种方式

1.同步

2.异步

3.例子

同步

❶你叫我去吃饭, 我听到了就立即和你去吃饭, 如果没有听到, 你就不停的叫, 直到我告诉你听到了, 才一起去吃饭

❷打电话好比同步, 两边是同时进行不能再打给另一个人

异步

❶你叫我去吃饭, 然后自己去吃饭了, 我得到消息后可能立即走, 也可能过会儿走

❷发消息好比异步, 和一个人发完消息就可能和另一个人发消息

五.进程池

1.什么是进程池?

2.为什么要有进程池?

忙时会有成千上万的任务需要被执行,闲时可能只有零星任务。

那么在成千上万个任务需要被执行的时候,我们就需要去创建成千上万个进程么?

首先,创建进程需要消耗时间,销毁进程也需要消耗时间。

第二即便开启了成千上万的进程,操作系统也不能让他们同时执行,这样反而会影响程序的效率。

因此我们不能无限制的根据任务去开启或者结束进程。那么我们要怎么做呢?

3.进程池的概念

4.资源进程

5.管理进程

资源进程与管理进程的交互

管理进程如何有效的管理资源进程,分配任务给资源进程?

通过IPC,信号,信号量,消息队列,管道等进行交互。

上一篇下一篇

猜你喜欢

热点阅读