说说并发

          并发这个概念一直都有,范围很光,主机级别的分布式,集群,操作系统级别的进程,线程,纤程,一直到语言级别的函数式编程,协程有些是在操作系统级别实现,有些是在语言级别实现,算是跨了两个级别。

         无论 map-reduce大热,函数式语言大热,greenevent,erlang的process,scala的actor、stm,C++的TBB、cilk++,都是在不同的级别追求并发,都意味着把任务切割成不同层次的大小, 把任务分成可并发执行的子任务。

         有这么多选择,并发似乎是件轻而易举的事情了。然而,事情却并非如此。 

         任务无论怎样切割和并发,总是需要同步和协调,否则就构不成一个完整的任务了。 这个同步和协调点,成为关键点,很容易成为并发的瓶颈。  

         传统的过程式语言,无论使用线程、协程还是STM,在编程的时候都要考虑同步和协调,对编程的技能要求高,也增加了编程的负担。

        函数式语言可以在语句层面做并发执行,不需要额外的努力,就可以利用CPU的多核优势,是最理想不过了。虽然由大任务直接分解成语句级别的小任务,这个工作并不轻松,但是在编程的时候就不需要考虑在哪里同步和协调,符合一次解决一个问题的思维模式。

         


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值