七周七并发模型

简介: image.png七个模型来介绍并发与并行。线程与锁:线程与锁模型有很多众所周知的不足,但仍是其他模型的技术基础,也是很多并 发软件开发的首选。
img_86db2384226fec128beb99d5f09308aa.png
image.png

七个模型来介绍并发与并行。

  • 线程与锁:线程与锁模型有很多众所周知的不足,但仍是其他模型的技术基础,也是很多并 发软件开发的首选。

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

  • Clojure之道——分离标识与状态:编程语言Clojure是一种指令式编程和函数式编程的混搭方 案,在两种编程方式上取得了微妙的平衡来发挥两者的优势。

  • actor:actor模型是一种适用性很广的并发编程模型,适用于共享内存模型和分布式内存模型, 也适合解决地理分布型问题,能提供强大的容错性。

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

  • 数据级并行:每个笔记本电脑里都藏着一台超级计算机——GPU。GPU利用了数据级并行, 不仅可以快速进行图像处理,也可以用于更广阔的领域。如果要进行有限元分析、流体力学计算 或其他的大量数字计算,GPU的性能将是不二选择。

  • Lambda架构:大数据时代的到来离不开并行——现在我们只需要增加计算资源,就能具有 处理TB级数据的能力。Lambda架构综合了MapReduce和流式处理的特点,是一种可以处理多种 大数据问题的架构。

以上每种模型都有各自的甜区。
 这个模型适用于解决并发问题、并行问题,还是两者皆可?
 这个模型适用于哪种并行架构?
 这个模型是否有利于我们写出容错性强的代码,或用于解决分布式问题的代码?


个人介绍:

高广超:多年一线互联网研发与架构设计经验,擅长设计与落地高可用、高性能、可扩展的互联网架构。

本文首发在 高广超的简书博客 转载请注明!

img_31e2e3075b097cabfd9b3643cd9abaa5.png
简书博客
img_3b1610566b09db3358ca5dcb3e015a52.png
头条号
目录
相关文章
|
2月前
|
Linux 调度
Linux应用开发基础知识——多线程编程(十)
Linux应用开发基础知识——多线程编程(十)
45 0
Linux应用开发基础知识——多线程编程(十)
|
7月前
|
存储 消息中间件 安全
Linux多线程编程
Linux多线程编程
102 2
|
8月前
|
算法 安全 Java
深入理解多线程编程:并发世界的探险
在计算机编程领域,随着多核处理器的普及,多线程编程成为了一种常见的技术。多线程编程可以提高程序的性能,充分利用多核处理器的计算能力。然而,多线程编程并不容易,它引入了并发性和同步问题,需要开发者仔细思考和处理线程之间的竞争条件。本文将深入探讨多线程编程的概念、技术和最佳实践,帮助读者更好地应对并发编程挑战。
104 0
|
11月前
|
安全 Java Spring
并发编程-01并发初窥
并发编程-01并发初窥
61 0
|
存储 缓存 安全
Java并发编程系列之一并发理论基础
本系列文章开始Java并发编程的进阶篇的学习,为了初学者对多线程的初步使用有基本概念和掌握,前置知识会对一些基础篇的内容进行介绍,以使初学者能够丝滑入戏。
Java并发编程系列之一并发理论基础
|
Java
【多线程3:基础原理】
【多线程3:基础原理】
86 0
|
存储 缓存 安全
|
安全 Java
管程(Moniter): 并发编程的基本心法
在吃透 Syncchronized 原理 中介绍了关于 Synchronize的实现原理,无论是同步方法还是同步代码块,无论是ACC_SYNCHRONIZED还是monitorenter、monitorexit都是基于Monitor实现的,那么这篇来介绍下什么是Monitor。
399 0
并发程序设计,懂不懂?
之前写过一些锁的文章了,然后就莫名其妙的去看了并发程序设计这块的内容,然后发现了很多专业的名词之前的理解有稍微的偏差,这次我们来彻底的理解一下吧!
并发程序设计,懂不懂?