Java之并发与并行

生活例子

吃饭的时候突然有电话打来,这时你有以下几种选择:

1.先把饭吃完,吃完之后再去接电话。

2.停止吃饭,去接电话,接完电话再来吃饭。

3.在吃饭的时候也在接电话

并发与并行的前提条件

并发与并行的前提条件:是否支持多个事件同时发生

案例分析

你在吃饭的时候也有电话打了过来,虽然两个事件同时发生了,但如果你是吃完了饭再去接的电话,显然对于你自身而言,你是不支持这两件事同时发生的,所以你不支持并发也不支持并行。

而如果你选择停止吃饭,去接电话,然后再来吃饭,那么你是支持两件事同时发生的,并且是按一定顺序交替执行事件,所以你支持并发。

最后如果你在吃饭的同时也把电话接了,说明你也是支持两件事同时发生的,并且是在同一时刻一起执行事件,所以你支持并行。

并发与并行区别

并发:交替做不同事件,也即不同的代码块交替执行

并行:同时做不同事件,也即不同的代码块同时执行

并发和并行的意义

并发和并行都可以处理“多任务”,二者的主要区别在于是否是“同时进行”多个的任务。并行是在不同实体上的多个事件,并发是在同一实体上的多个事件。

那么为什么要进行“并发、并行、多任务、多线程、异步”等等相关的一些操作,就是为了充分利用CPU的巨大潜能,不浪费CPU的资源,因为很多任务是需要时间的,比如文件的读写等等,如果让CPU处于一个闲置状态,不充分利用它,程序的效率就很低。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值