一说“并发”就想到“多线程”,那就局限了

「留意文末福利」

很多小伙伴一听到并发二字就立马想到多线程。今天就来聊聊它们的区别。

斯蒂芬·克利里(Stephen Cleary)被誉为C#并发编程领域的重要专家。他用通俗的语言给出了“并发”的定义:

并发
一次不止完成一件事。

十分言简意赅,服气!那么他又是怎么解释“多线程”的呢?

顾名思义,多线程就是使用多个线程。

当然,斯蒂芬·克利里进一步做了解释:

多线程
一种采用多个执行线程的并发形式。

瞧,并发多线程其实是这么个关系:

多线程是一种并发形式,但绝非唯一的形式。根据斯蒂芬·克利里的描述,我们来把上图补充完整。

以下是斯蒂芬·克利里给出的通俗定义。

并行处理
也称并行编程,是一种多线程形式,指的是将大量的工作划分给多个并发运行的线程,从而处理这些工作。

异步编程
一种通过future或回调来规避多余线程的并发形式。

响应式编程 
一种声明式编程,其中应用程序会对事件做出响应。

注意,响应式编程并不一定是并发的,但它与并发密切相关。

现如今,并发编程的重要性已经毋庸置疑。无论是桌面端、移动端还是服务器端,并发编程都已经渗透到开发的各个方面。利用并发编程,你可以有效地缩短用户界面响应时间,提高服务器的可扩展性。

那么问题就来了:在遇到实际的开发问题时,我怎么知道用哪种并发形式最好呢?

比如,在.NET平台上开发时,常常会遇到这样的问题:

做单元测试,程序需要异步等待一段时间,该怎么做?

在执行操作时,该怎么报告进度?

并行任务的结构和数量只能在运行时知晓,该怎么实现这种动态并行?

我需要一个不会经常改变的栈或队列,并且它可以通过多个线程安全访问。该如何实现?

我有一些共享数据,需要从多个线程中安全地读取和写入。是否应该用锁呢?

并发编程场景的种类庞杂,类似的问题还有很多。如果此时手边有一本可供随时翻查的参考书,那将十分省事!

在C#并发编程领域,恰好就有这么一本专注于帮你解决实际问题的书,而且它刚刚升级啦!


斯蒂芬·克利里 著
韩峰 译

C#并发领域顶级作品“猫书”全新升级
美亚“并行计算机编程畅销榜Top 4

享有盛誉的C#专家Jon Skeet推荐

 本书适合谁

如果你想快速找到C#并发编程问题的解决方案,那么这本书就是为你量身定制的。

在阅读前,最好有一定的.NET开发经验,知道泛型集合、枚举、LINQ等,但不需要提前了解多线程编程或异步编程。

 本书特点

精选近90个实例,涵盖所有常见并发编程场景,分别针对多线程编程、异步编程、并行处理和响应式编程,以问题–解决方案-讨论的形式解答怎么做、为什么这么做

 第2版新在哪里

- 新增“异步流”一章
- 新增20个实例
- 根据C# 8.0的特性升级了代码

 作者是谁

斯蒂芬·克利里,C# MVP,在ARM固件领域以及Azure服务平台等方面有着丰富的经验。他一直投身于研发开源技术,最初致力于Boost C++库,而后发布了一些自行编写的库和工具。

 大牛推荐

“凭借涵盖技术之广泛,操作指南之实用,这本书无愧学习现代.NET并发编程的理想之选。”

——Jon Skeet,谷歌高级软件工程师
《深入解析C#(第4版)》作者

“计算机领域的下一件大事就是普及大型并发编程。开发人员已然拥有了前所未有的力量,但并发编程对多数人来说依旧富有挑战。斯蒂芬将我们的目光聚焦到这个问题上,帮助我们更好地理解并发编程。”

——Scott Hanselman,微软首席项目经理

“斯蒂芬·克利里已成为C#异步编程和并发编程领域的重要专家。这本书清晰、简练地阐述了这些技术的关键切入点和相关原则,能够帮助开发人员快速入门,并取得成功。”

——Stephen Toub,微软首席架构师


一 键 购 书

文 末 福 利

留言主题:你觉得并发编程难在哪里?

留言点赞最高的前 2 位读者,各送 1 本《C#并发编程经典实例(第2版)》。

从剩余的评论留言中,随机选出 2 位读者,各送 1 本《C#并发编程经典实例(第2版)》。

统计截止时间:12 月 21 日 21:00。

推 荐 阅 读

官宣:图灵的____,只卖不送

经常造轮子的 AI 工程师,水平通常不会太差

图 灵 社 群

☟ 「阅读原文」试读更多内容

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值