并发编程模型

什么是并发编程模型?

并发编程模型是一种如何使用并发来有效、高效处理任务的编程方式。也就是说如何使用并发。


  并行工作者模型

  流水线模型


并行工作者模型


并行工作者就是多个任务是并行执行的。用于个线程用于管理,当有任务来到时,通过某种策略来将任务分发给某一个worker线程。而真正的worker线程执行是并行的。

并行工作者是一个线程完完全全的处理一个任务,也就是一个任务完全由一个线程来处理。但是多个线程之间的任务是不能保证他们的执行顺序的。然而有时候我们是需要多个任务是按照顺序来执行的。

另外,并行工作者模型是有多少任务并发执行就有多少线程,当随着任务数量的增加,线程数量也会不断增多。然而,当线程数量达到一个阈值时,性能反而会下降。


流水线模式


与并发工作模型不同的是,流水线模型将是通过一个任务的工作过程来设计的。也就是说一个任务不再是由一个线程来处理了,而是由多个线程来处理,每个线程都有先后顺序,不同的线程执行任务的不同阶段。如Worker2执行IO、Worker3执行计算、Worker4打印日志。

这样任务数量就和线程数量没有那么直接的关系了,而是跟任务的过程有关。当有很多的任务需要处理时,线程不会随着任务的数量增加而增加。当某个线程执行完一个任务的某一个阶段后,将任务交给下一个线程处理,而自己又可以接受上一个线程扔过来的任务继续处理。


为了更高效的处理任务,可以将流水线模型和并发工作者模型进行结合:


将并行工作者模型和流水线模型集合,当有很多的任务需要处理时,为每一个 ”线程链“ 分配一批任务,这样每个 ”线程链“ 的负载就不会过重。




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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值