七周七并发模型

作者: 高广超 | 来源:发表于2018-01-01 21:20 被阅读226次
    image.png

    七个模型来介绍并发与并行。

    • 线程与锁:线程与锁模型有很多众所周知的不足,但仍是其他模型的技术基础,也是很多并 发软件开发的首选。

    • 函数式编程:函数式编程日渐重要的原因之一,是其对并发编程和并行编程提供了良好的支 持。函数式编程消除了可变状态,所以从根本上是线程安全的,而且易于并行执行。

    • Clojure之道——分离标识与状态:编程语言Clojure是一种指令式编程和函数式编程的混搭方 案,在两种编程方式上取得了微妙的平衡来发挥两者的优势。

    • actor:actor模型是一种适用性很广的并发编程模型,适用于共享内存模型和分布式内存模型, 也适合解决地理分布型问题,能提供强大的容错性。

    • 通信顺序进程(Communicating Sequential Processes,CSP):表面上看,CSP模型与actor模 型很相似,两者都基于消息传递。不过CSP模型侧重于传递信息的通道,而actor模型侧重于通道 两端的实体,使用CSP模型的代码会带有明显不同的风格。

    • 数据级并行:每个笔记本电脑里都藏着一台超级计算机——GPU。GPU利用了数据级并行, 不仅可以快速进行图像处理,也可以用于更广阔的领域。如果要进行有限元分析、流体力学计算 或其他的大量数字计算,GPU的性能将是不二选择。

    • Lambda架构:大数据时代的到来离不开并行——现在我们只需要增加计算资源,就能具有 处理TB级数据的能力。Lambda架构综合了MapReduce和流式处理的特点,是一种可以处理多种 大数据问题的架构。

    以上每种模型都有各自的甜区。
     这个模型适用于解决并发问题、并行问题,还是两者皆可?
     这个模型适用于哪种并行架构?
     这个模型是否有利于我们写出容错性强的代码,或用于解决分布式问题的代码?


    个人介绍:

    高广超:多年一线互联网研发与架构设计经验,擅长设计与落地高可用、高性能、可扩展的互联网架构。

    本文首发在 高广超的简书博客 转载请注明!

    简书博客 头条号

    相关文章

      网友评论

        本文标题:七周七并发模型

        本文链接:https://www.haomeiwen.com/subject/hlkxnxtx.html