超全的并发编程模型总结

作者: Codlife | 来源:发表于2016-08-06 16:19 被阅读0次

据我了解,截至目前(2016):并发编程模型主要有一下三种

一:并行工作者模型

并行工作模型主要是有多个工作者,每个工作者单独完成一个事件。如下图

并行编程模型

委派器将任务分配给Worker,Worker单独完成任务,java 7 中 java.util.concurrent 包中好多工具都是基于此模型实现的。明显存在的存在的问题是工作器之间需要共享资源。

如下图:

资源共享

二:流水线模型

流水线模型类似于工厂里的流水线作业,每个worker只负责一个部件。在实际的计算机系统中往往有多条流水线同时进行。

流水线模型

优点:

1:Worker之间不需要状态共享

2:有一定的顺序,有利于模型的回复

3:符合计算机硬件的特点

目前流行的代表产品有:

Vert.x

AKKA

Node.js

Actor 和Channel

Actor:每个事物都是一个actor,Actor之间可以异步的发送和接受信息。


Channel 模型:每个Worker 只需要知道消息需要发到哪个Channel,每个Worker通过Channel 订阅或者取消订阅消息。

三:函数式并发模型

函数式并发模型利用了函数调用之间的独立性实现并发。

总结:那种编程模型好?

具体取决于业务场景,如果作业之间本身是独立的,不需要太多的资源共享,那么可以方便的使用并行编程模型,否则使用流水线编程模型应该会收到更好的效果。函数式并发编程在大数据平台Spark 中使用非常多,个人感觉函数式并发编程很有前景。

相关文章

  • 超全的并发编程模型总结

    据我了解,截至目前(2016):并发编程模型主要有一下三种 一:并行工作者模型 并行工作模型主要是有多个工作者,每...

  • Go并发编程学习

    并发编程并发编程的优势:• 并发编程能够更客观的表现问题模型• 并发编程能够充分利用CPU核心优势• 并发编程能够...

  • Java并发基础篇(4):并发编程模型

    转自并发编程网:http://ifeve.com/ 并发系统可以采用多种并发编程模型来实现。并发模型指定了系统中的...

  • Effective java总结

    总结 effecttive java 注意的地方简单概括下。并发部分没有java并发编程实战全。就不写在这了 JD...

  • Java内存模型

    2.7 Java内存模型 2.7.1 并发编程模型 在并发编程中,需要处理两个关键问题:线程之间如何通信及线程之间...

  • golang的线程模型——GMP模型

    常见的线程模型 单线程服务器编程模型:Redis、Node.、JavaScript 多线程服务器编程模型:并发多个...

  • 6、深入理解并发编程和归纳总结

    深入理解并发编程和归纳总结 JMM基础-计算机原理 Java内存模型即Java Memory Model,简称JM...

  • 高并发服务器IO模型

    高并发服务器 IO 模型一、 什么是 IO?二、 IO 的 5 种模型三、Linux 并发网络编程模型四、sele...

  • 进程并发编程基础

    前言:看了操作系统并发编程的基础,做个笔记并用 C 实现常见的一种并发编程的模型——消费者、生产者模型 进程之间的...

  • 并发编程模型

    并行工作者模型可以这样理解:将完整的一个事情(比如生产一台汽车),交由一个工作者来完成,每个工作者都会拿到所有的生...

网友评论

    本文标题:超全的并发编程模型总结

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