C# (.NET) 中的并发:异步、并行与多线程
C# (.NET) 中的并发:异步、并行与多线程
简介:
现代应用程序必须快速且响应灵敏。用户无法容忍卡顿,而服务器系统必须同时处理数千个请求。《C# (.NET) 中的并发》一书是一本关于 .NET 平台上并行和异步编程各个方面的全面指南,它将帮助您从顺序代码过渡到高性能的并发解决方案。
本书内容简介
本书遵循“由浅入深”的原则,涵盖了所有关键主题:
- 多线程基础:什么是线程、线程池,以及如何在 .NET 中使用它们。
- 异步编程:深入探讨 async/await 模式、Task 和 ValueTask,以及同步上下文管理。
- 任务并行库 (TPL):并行循环、任务、Parallel 类以及高效的数据处理。
- 同步与锁:监视器、互斥锁、信号量、ReaderWriterLockSlim 以及无锁方法。
- 线程安全集合:ConcurrentDictionary、ConcurrentQueue、BlockingCollection 和通道 (Channels)。
- 错误处理与调试:如何在异步代码中捕获异常、避免死锁和竞态条件。
- 响应式编程:Rx.NET 简介以及事件流处理。
- 高级技术:Dataflow (TplDataflow)、IAsyncEnumerable、使用 Span
和 Memory 的并行处理。
本书适合谁?
本书对以下人群非常有用:
- C# 开发者,希望了解如何编写无错误、无泄漏的异步代码。
- 软件架构师,正在设计基于 .NET 的高负载系统。
- 技术负责人,希望在其团队中推广并发最佳实践。
- 学生和初级开发者,希望掌握编程中最复杂的主题之一。
阅读本书需要扎实掌握 C# 语法并基本了解操作系统的工作原理。
您将学到什么?
- 如何正确使用 async/await,以避免阻塞 UI 并降低服务器性能。
- 如何使用 TPL 在多核处理器上并行化计算。
- 如何安全地在线程之间共享数据,避免竞态和死锁风险。
- 如何测试和调试多线程代码。
- 如何使用 TPL Dataflow 构建数据处理管道。
- 如何避免常见的反模式(例如“sync over async”)。
所有代码示例均适用于 .NET 8 及更高版本,包括 .NET 9。本书包含大量实践练习和现成解决方案,可立即应用于实际项目。无论您是在编写 WPF 桌面应用程序、ASP.NET Core Web 服务还是 Azure 云函数,本书中的知识都将帮助您使代码更快、更稳定、更具可扩展性。