为什么并发速度比循环快?

缘由

在使用代码执行相同任务时,通常会发现一个现象,就是使用异步并发时,会比循环遍历的速度快,明明是同样处理器单线程?

推导

1 a − n a + n < 0 \frac{1}{a}-\frac{n}{a+n}<0 a1a+nn<0
= > a + n − a n a ( a + n ) < 0 =>\frac{a+n-an}{a(a+n)}<0 =>a(a+n)a+nan<0
a , n a,n a,n是自然数,有
= > a < ( a − 1 ) n =>a<(a-1)n =>a<(a1)n
= > n > a a − 1 > 1 =>n>\frac{a}{a-1}>1 =>n>a1a>1

说明

当执行任务的时候,系统一直在运行,cpu处理任务时候,肯定是存在其他线程在使用cpu,所以假设 a a a是已经存在的线程数,在执行系统的其他任务, n n n是并发执行的量,用于目标任务,并发量越大,任务相对循环执行要快。因为,
f ( n ) = n a + n f(n)=\frac{n}{a+n} f(n)=a+nn
是增函数。由于cpu性能几乎固定和io的限制,因此有上限。简而言之,人多抢的资源就越多。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值