Java中的并发

一、为什么要有并发

       并发大体解决两类问题。一是“速度” , 二是“设计管理性”

       我对第二类问题的解决没有理解,还望博友知道的相告。下面主要来讲关于解决第一类问题的并发。

       在单处理器上运行的并发开销比该程序的所有部分都顺利执行的开销大。因为其中增加了上下文切换的代价(从一个任务到另一个任务)。表面上看,将程序的所有部分当作单个任务运行好像是开销更小一点,并且省下上下文切换的代价。

       然而,阻塞改变了这一切。如果程序中的某个任务因为程序控制范围之外的某些条件(通常是I/O)而导致不能继续执行,那么这个任务或线程就被阻塞了。如果没有并发,则整个程序都将停止下来,直到外部条件发生变化。如果使用并发,则这个程序还可以保持继续向前执行。

      事实上,从性能的角度看,如果没有任务阻塞,那么在单处理器机器上使用并发就没有任何意义。


参考资料: 《Thinking in Java》

      


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值