java 并行 并发_java并发与多线程(一):并发与并行

之前写java锁的时候有说等我看完了阿里的《码出高效》-并发与多线程就来更新,最近忙的没顾上的我大半夜来更新啦(纯记录,内容全部来阿里《码出高效》,不用于盈利,侵删)。

并发与并行

并发是指在某个时间段内,多任务交替处理的能力。所谓不患寡而患不均,每个CPU不可能只顾着执行某个进程,让其他线程一直处于等待状态。所以,CPU把可执行的时间均匀地分成若干份,每个进程执行一段时间后,记录当前的工作状态,释放相关的执行资源并进入等待状态,让其他进程抢占CPU资源。并行是指同时处理多任务的能力,目前,CPU已经发展为多核,可以同时执行多个互不依赖的指令及执行块。并发与并行两个概念非常容易混淆,他们的核心区别在于进程是否同时执行。以KTV唱歌为例,并行指的是有多少人可以使用话筒同时唱歌,并发指的是同一个话筒被多个人轮流使用。

并发与并行的目标都是尽可能地执行完所有任务。以一声坐诊为例,某个科室有两个专家同时出诊,这就是两个并行任务;其中一个医生,时而问诊,时而查看化验单,然后继续问诊,突然又中断去处理病人的咨询,这就是并发。在并发环境下,由于程序的封闭性被打破,出现了一下特点:

并发程序之间有相互制约的关系。直接制约提现为一个程序需要另一个程序的计算结果;间接制约体现为多个程序竞争共享资源,如处理器、缓冲区等。

并发程序的执行过程是断断续续的。程序需要记忆现场指令及执行点。

当并发数设置合理并且CPU拥有足够的处理能力时,并发会提高程序的运行效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值