什么是进程池?并行 并发 同步 异步 阻塞 非阻塞 互斥 死锁

进程池?

预先创建一组子进程,当有新任务来时,系统通过 调配 该组进程中的某个 子进程 完成此任务。

为什么需要?

1 进程创建 销毁需要 消耗 cpu 时间

2预先创建,以空间 换时间,提升性能。时间 是 唯一 稀缺资源,空间不足 加内存,能够用钱解决的问题  都不是问题,钱都解决不了的 问题 才是 问题。

3通过 系统 合理分配任务,提高性能。尽量 实现 真正 的 并行 处理,提升 系统 处理效率。

注意:

1缺省的话,processes 数量和 cpu 核数 相同。

2进程池 支持 同步 ,异步,映射方式 添加任务 到进程池。

3方便对多个 函数式分布式数据 并行执行。

什么是并行 并发?

并发:实质 是 一个核物理cpu (或多核)在若干程序之间 多路复用,并发性是多事件对有限物理资源 强行共享提高效率。

 互斥:既一个公共资源同时只能被一个进程或一个线程使用。

并行:指两个及以上的事件在同一时刻发生。可以使 多个程序 同时 在不同的cpu 上同时执行。多个实体,多个事件,同时发生。

同步:它们的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。最基本的场景就是:两个或两个以上的进程或线程在运行过程中协同步调,按预定的先后次序运行。比如 A 任务的运行依赖于 B 任务产生的数据。


显然,同步是一种更为复杂的互斥,而互斥是一种特殊的同步。也就是说互斥是两个任务之间不可以同时运行,他们会相互排斥,必须等待一个线程运行完毕,另一个才能运行,而同步也是不能同时运行,但他是必须要安照某种次序来运行相应的线程(也是一种互斥)!因此互斥具有唯一性和排它性,但互斥并不限制任务的运行顺序,即任务是无序的,而同步的任务之间则有顺序关系。

异步:是指进程 不需要 一直等 而是继续执行 下面的操作,不管其他进程的状态,当有消息返回时,系统会通知进程进行处理。


阻塞:资源被占用 死等。厕所 被占  ,等着 里面的人出来。当调用某个方法,当前的执行流程 会被挂起;只有当这个函数返回结果,才会被继续执行。

非阻塞:资源被占用 不等待 做其他事情。厕所 被占了 ,去吃饭。调用某个方法时,这个方法没有立刻返回 ,当前的 流程 不会被 挂起,继续执行自己的指令。

举例:

你一边 敲代码 ,一边 思考 高数作业 。两件事情 同时发生,同时执行 并行处理,虽然大脑同时思考两件事, 但激活的神经元有限,消耗 cpu资源,虽然在做 但是 效率不高。但你一边 敲代码,一边听音乐 完全不影响。

你正在 敲代码,突然来了个 电话,放下代码 ,接电话,就是 并发处理,你在 若干事件之间 来回切换时间 片段,多路复用,多个事件强制 对一个你进行 共享, 来提升效率。

如果 你正在敲代码 ,不想做高数 太tm难了,这时让别人帮你做。两件事 两个大脑 两个cpu 同时帮你处理,就是并行,并且是高效率的并行,但如果 对方 是个 弱智 ,cpu 太垃圾 也无法 高效 处理。

两个串行事件是并发事件,因为多加 一个 人 ,多加了一个大脑,一个cpu 同时帮你 处理,就变成了 并行。

并发程序 会因为 多核cpu 变成 并行程序。所以 多进程 就一定效率 高吗?不一定 看情况 ,计算密集型 使用 多进程 ,io 密集型  使用多线程。

举例:

    炒鸡蛋

1 点火 10s

2倒油  20s

3待油 烧热 放入 鸡蛋  30s

4 炒鸡蛋 直至 炒熟 出锅 40s

顺序执行 就是 就是并发,你一个人干可以多件事,时间是顺序执行,完成 炒鸡蛋 一共100s。也是 互斥因为 执行每个步骤的时候,你不能 干其他的事情 ,只能做一件事,保证事件 的原子性,其他事件 不能对你 进行共享。也是 同步  因为 第四步 完成要依赖 第三步的 数据,第三步 依赖 第二步 ,第二步依赖第一步。没有执行的事件相对于正在执行的事件,就是阻塞 ,正在执行的事件相对于没有执行的事件 就是 非阻塞。

如果  你 一只手 倒油 一只手 点火,同时 执行两个步骤 ,那就是 并行处理,那么这两个事件 ,也是 异步 ,第二步 操作 不需要等待 第一步 操作完成。总需90s 。效率提升了。

同步 阻塞,异步非阻塞,但 也可能 同步非阻塞 ,异步 阻塞  不常见 。具体情况 具体分析 ,看情况。




评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值