9月7日-8日,相约 2023 腾讯全球数字生态大会!聚焦产业未来发展新趋势! 了解详情
写点什么

未来的并发和分布式编程

  • 2017-03-20
  • 本文字数:1221 字

    阅读完需:约 4 分钟

世界是并发的,我们周围的一切都是异步和事件驱动的。在最近召开的伦敦QCon 大会上, Joe Duffy 在他的主题演讲里宣称,未来每一个开发者都需要同并发和云打交道。其中的核心在于通信,它对于并发和分布式系统都至关重要。

Duffy 曾任微软的语言和编译器工程总监,他认为分布式的就是并发的;本质上就是很多件事在同一时间一起发生。唯一的区别在于,在分布式系统中,事情发生时,彼此相距较远,比如在不同的处理器、服务器或者数据中心。这个差异很重要,尤其对于通信来说。使用内存共享还是采用把时延控制在毫秒级的网络通信会带来不同的约束和能力,也会影响系统架构。

并发编程和分布式编程在早期的计算机科学中有着相同的根源。在早期,问题总是由异步带来的。Duffy 认为, Butler Lampson 在构建分布式系统方面是最伟大的思想家之一,尤其在可靠性方面,他也强烈推荐了 Lampson 的论文,即 1983 年发表的“系统设计”。Duffy 宣称,在 2000 年之后多核 CPU 开始出现至今,在并发编程领域我们没有发明任何东西。相反,我们回过头去找早期的想法和发表的论文。

在未来,Duffy 期望看到分布式编程的回归,有越来越多设计良好的分布式系统使得系统看起来更像经典的并发系统。我们已经学了不少关于构建并发系统的东西,他则强调了七条关键经验:

  1. 先思考通信。它必须是任何分布式应用架构的一部分。Ad-hoc 通信会带来可靠性的问题。而 Actor 模式和队列则是好的范例。
  2. 概要设计很有用,但是不要盲目相信它。服务器总是以跟客户端不同的速度发生变化,Duffy 以 Internet 为例说明了即便如此也可以工作的很好。
  3. 安全很重要,但是很难做到。安全性的缺乏可能会导致资源竞争、死锁或者未定义行为的出现。Duffy 认为,更好的安全形式是做好隔离。如果无法做到,你需要做到不可改变。如果这也做不到,你需要采用标准同步机制。
  4. 在设计时为失败做好准备,因为总会有错误发生的。Duffy 认为,我们的设计应该考虑可复制和重启能力,还说明了,故障恢复对于一个可靠的并发系统来说是必需的。
  5. 结构应该反映因果关系。一连串的事件引发的某个行为在并发系统里可能是非常复杂的。有相关上下文可以简化对这些事件和行为的跟踪。
  6. 编码结构采用并发模式,以使其更容易理解系统。Duffy 的两个最喜欢的模式是 Fork-Join Pipeline
  7. 少说,多用声明和反应式编程。声明和反应模式善于把难题交给编译器和框架来处理。他认为 Serverless 是这个想法在只有一个事件和一个动作时的特殊实例。

Duffy 在最后总结强调了,未来是分布式的,他期望在分布式编程方面见到更多有启发的先锋。我们当下的编程语言对于并发支持的很好,他期望编程语言能渐渐对于分布式和云编程也支持的更好,最好能把他提到的七点內建进去。

查看英文原文: Concurrent and Distributed Programming in the Future


感谢张卫滨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

活动推荐:

2023年9月3-5日,「QCon全球软件开发大会·北京站」 将在北京•富力万丽酒店举办。此次大会以「启航·AIGC软件工程变革」为主题,策划了大前端融合提效、大模型应用落地、面向 AI 的存储、AIGC 浪潮下的研发效能提升、LLMOps、异构算力、微服务架构治理、业务安全技术、构建未来软件的编程语言、FinOps 等近30个精彩专题。咨询购票可联系票务经理 18514549229(微信同手机号)。

2017-03-20 19:006025

评论

发布
暂无评论
发现更多内容

传说中的“大数据杀熟”是怎么做到的?—— RFM 模型了解一下

AfterShip

RFM模型 用户标签 用户画像

19 K8S之临时/hostPath/网络存储卷

穿过生命散发芬芳

k8s 11月日更

24H营业的无人售药机上线 EasyDL帮你实现“排队自由”

百度大脑

人工智能 百度

你真的懂Redis的5种基本数据结构吗?

华为云开发者联盟

redis 容器 数据结构 数据 字符串

百分点大数据技术团队:基于HugeGraph的知识图谱技术在白酒行业的落地实践

百分点科技技术团队

linux shell 命令行移动光标快捷键之跳到行首尾

WindFlying

Vanguard CIO:如何在大企业中培养创业心态

WorkPlus

技术分享 | 让实时协同的框架绘图变得丝滑起来

ShowMeBug

架构 绘图 实时消息

录制快、回放稳,爱奇艺iOS云录制回放平台技术实践

爱奇艺技术产品团队

ios 自动化 测试

36道Java经典基础与高级面试题,面完(18K)你同意吗?

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

惊为天人!Alibaba新产SpringBoot深度历险(嵩山版)开源

热爱java的分享家

Java 架构 面试 程序人生 编程语言

StarRocks在格洛博电商系统的应用实践

StarRocks

数据库 大数据 数据分析 StarRocks

实施进度难同步,项目管理搞定它!

明道云

统一门户系统解决方案,协同办公更敏捷!

WorkPlus

猿辅导 x StarRocks:构建统一OLAP平台,全面升级数据分析能力

StarRocks

数据库 数据分析 StarRocks

Nebula Graph 源码解读系列 | Vol.05 Scheduler 和 Executor 两兄弟

NebulaGraph

数据库 图数据库

Gartner预测到2025年,将有一半的云数据中心部署具有人工智能功能的机器人

WorkPlus

架构实战营 - 模块4作业

无名

「架构实战营」

Elasticsearch写入数据的过程是什么?以及是如何更新索引数据的

热爱java的分享家

Java 架构 程序人生 编程语言 架构师

面试只要问到分布式,必问分布式锁

华为云开发者联盟

程序员 分布式 分布式锁 内存 应用

传统IT开发与低代码开发争议白热化,技术开发规则或将重构?

优秀

低代码 低代码开发 低代码平台

又快又稳!Alibaba出品Java性能优化高级笔记(全彩版)震撼来袭

热爱java的分享家

Java 架构 面试 程序人生

“阿里爸爸”又爆新作!Github新开源303页Spring全家桶高级笔记

热爱java的分享家

Java 架构 面试 程序人生 编程语言

用Python保住“设计大哥“的头发,直接甩给他10000张参考图,爬虫采集【稿定设计】平面模板素材

梦想橡皮擦

11月日更

大规模任务调度在 AfterShip 的高可用实践

AfterShip

高可用 任务调度 基础架构

详解TCP常见的五个异常处理场景,其实TCP聪明得很

热爱java的分享家

Java 架构 程序人生 编程语言 架构师

Gartner杰出研究副总裁Mark Raskino:为什么元宇宙商业离我们还很遥远?

WorkPlus

内测邀请|宜搭应用搭建体验全新升级,邀您抢先体验!

钉钉宜搭低代码

钉钉 低代码 数字化转型 低代码平台 钉钉宜搭

Python代码阅读(第60篇):列表是否包括指定的元素

Felix

Python 编程 列表 阅读代码 Python初学者

So eazy!SpringBoot一键去除参数前后空格和XSS过滤实战解析

热爱java的分享家

Java 架构 程序人生 编程语言 架构师

AfterShip 亿级流量 API 网关的演进

AfterShip

架构演进 kong API Gateway

  • 扫码添加小助手
    领取最新资料包
未来的并发和分布式编程_QCon_Jan Stenberg_InfoQ精选文章