• 并发编程模型


    转自:

    并发编程模型

    并发系统中我们可以使用多种并发编程模型来实现
    并发模型中指定系统中线程采用指定的协作方式完成它的作业
    不同的并发模型采用不同的方式拆分作业,同时线程间的协作和交互方式也不相同
    下文将讲述不同并发编程模型,如下所示:

    并发模型与分布式系统相同点:
        1.并发系统是线程间相互通信
        2.分布式系统是进程之间相互通信
    

    并行工作者模型

    在并行工作者模型中,委派者(Delegator)将传入的作业分配给不同的工作者
    每个工作者完成整个任务。工作者们并行运作在不同的线程上,甚至可能在不同的CPU上 在Java应用系统中,并行工作者模型是最常见的并发模型
    如:java.util.concurrent包中的许多并发实用工具都是设计用于这个模型的

    并行工作者模型的优点

    并行工作者模式优点:此模型易于理解,我们只需添加更多的工作者即可提高系统的并行度
    如:
    网络爬虫:
    由于每一个线程爬取网页都同网络等其它信息有关,此时我们可以通过多开线程的方式,避免CPU出现大量的空闲时间,提高系统效率

    并行工作者模型的缺点

    并行工作者模型,我们需注意的是共享数据的访问,因为多个线程对同一数据进行操作,所以在并行模型中,如果涉及共享数据操作时,此时会加入一些线程锁,使用线程进行排队操作,
    出现阻塞使其效率变的低下
    任务顺序不确定性:
    如:一个线程正在运行第一步 ,而另一个线程可能正在运行任务的其它步骤导致共享信息发生变化,这些都是并行任务需考虑的地方
    此时我们需考虑此处是否适用并行工作者模型

    流水线模式

    流水线模式类似于工厂流水:
    每个工作者只负责完成自身功能,当完成相应功能后,就转给下一个工作者,每个工作者都在自己的线程中工作

  • 相关阅读:
    PyTorch学习笔记(二)
    【c#】log4net用法
    java毕业设计游戏商城平台Mybatis+系统+数据库+调试部署
    单链表的基本操作
    java有关的HttpsUtils工具类 https请求工具类
    代码随想录算法训练营第1天|二分查找|移除元素
    androidx和v4包资源冲突解决方法
    labview编程笔记之事件结构
    (2022版)一套教程搞定k8s安装到实战 | ConfiMap
    C++ 文档搜索工具(附源码)
  • 原文地址:https://blog.csdn.net/qq_25073223/article/details/126655315