美文网首页
使用并发的目的和并发的其中常用模型

使用并发的目的和并发的其中常用模型

作者: 每天学点编程 | 来源:发表于2018-02-05 09:26 被阅读21次

    请关注我的微信公众号

    个人微信公众号

    技术交流群 (仅作技术交流):642646237

    ​请关注我的头条号:

    使用并发的目的

    • 为了让程序并行运行从而发挥多核的优势
    • 若正确使用并发,程序还将获得及时响应、高效、容错、简单

    并发的世界,并发的软件

    世界是并发的,为了与其有效地交互,软件也应是并发的。
    并发是系统及时响应的关键。

    如果解决方案有着与问题类似的并发结构,就会简单许多:不需要创建一个复杂的线程来处理问题中的多个任务,只需要用多个简单的线程分别处理不同的任务即可。

    分布式软件

    地理分布型问题。软件在非同步运行的多台计算机上分布式地运行,其本质是并发。
    分布式软件还具有容错性。

    为了增强软件的容错性,并发代码的关键是独立性和故障检测。
    独立性是指一个故障不会影响到故障任务以外的其他任务。
    故障检测是指当一个任务失败时(原因可能是任务崩溃、失去响应或硬件故障),需要通知负责故障处理的其他任务来处理。
    串行程序的容错性远不如并发程序。

    七个模型——线程与锁

    是其他模型的技术基础。

    七个模型——函数式编程

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

    七个模型——Clojure之道分离标识与状态

    七个模型——actor

    适用于共享内存模型和分布式内存模型,也适合解决地理分布型问题,能提供强大的容错性。

    七个模型——通信顺序进程(Communicating Sequential Processes,CSP)

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

    七个模型——数据级并行

    七个模型——Lambda架构

    Lambda架构综合了MapReduce和流式处理的特点,是一种可以处理多种大数据问题的架构。

    相关文章

      网友评论

          本文标题:使用并发的目的和并发的其中常用模型

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