并发编程模型

转自:

并发编程模型

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

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

并行工作者模型

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

并行工作者模型的优点

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

并行工作者模型的缺点

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

流水线模式

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值