首页 > 编程语言 >并发编程不是少数派技能,每个程序员都要尝试掌握

并发编程不是少数派技能,每个程序员都要尝试掌握

时间:2023-06-27 16:34:26浏览次数:294  
标签:并发 C# 编程 程序员 少数派 Go 线程 多线程


题图 | 《七周七并发编程》封面图案

新手程序员一般会对并发编程和多线程编程避而远之,因为它们会让本来好好的代码以最可怕的方式运行,而且竞争条件等各类问题会引发严重的崩溃,要么是在生产环境中,要么是在演示样例中,似乎总是如此。更有甚者称“线程是万恶的”,要彻底规避并发编程。也有一些开发人员体会到了并发编程的优势,毫无畏惧地应用它。但是,大多数开发人员曾在并发编程中受挫,这样的经历使他们对其采取避而远之的态度。

然而,如今的用户期望看到完全响应的界面,服务器应用程序也不得不提高至前所未有的高度,并发编程兼顾了这两大潮流。因此,对现代应用程序来说,并发编程迅速成为了一种刚需。

幸运的是,许多现代程序库能让并发编程变得简单许多!并行处理和异步编程已不再是少数专家级技能,对于每个程序员,下一个需要掌握的重要技能就是并发编程!

刚提到的程序库通过提升抽象层级,使得响应式应用程序和可扩展式应用程序的开发不再遥不可及,每个开发人员都可以实现。如果在并发编程极其复杂的时代里,你曾一度受挫,那我鼓励你借助现代工具再次尝试。或许我们永远无法称呼并发编程为“小菜一碟”,但一定不再如过去那样困难。

今天我们就为大家推荐 4 本并发编程图书,重点推荐一下刚上架的口碑佳作《C#并发编程经典实例》。

并发编程不是少数派技能,每个程序员都要尝试掌握_python

Amazon 4.4 星口碑图书中文版重磅上架

♦️

并发编程不是少数派技能,每个程序员都要尝试掌握_人工智能_02


斯蒂芬·克利里 著

韩峰 译

C#并发领域经典作品“猫书”全新升级

美亚“并行计算机编程”畅销榜图书

C# 并发领域专家 Stephen Cleary 作品

C#顶级专家 Jon Skeet 推荐

并发编程不是少数派技能,每个程序员都要尝试掌握_微软_03

你需要这本书吗?

如果你想快速找到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,微软首席架构师

其 他 推 荐

1. 图解Java多线程设计模式

并发编程不是少数派技能,每个程序员都要尝试掌握_微软_04

作者:结城浩
译者:侯振龙 , 杨文轩

  • 精选 12 种与多线程和并发处理相关的设计模式
  • 264 张图表 + 300 段Java示例程序 = 轻松学习多线程编程
  • 日本经典多线程入门书,原版长销 11 年!

本书通过具体的Java 程序,以浅显易懂的语言逐一说明了多线程和并发处理中常用的12 种设计模式。内容涉及线程的基础知识、线程的启动与终止、线程间的互斥处理与协作、线程的有效应用、线程的数量管理以及性能优化的注意事项等。此外,还介绍了一些多线程编程时容易出现的失误,以及多线程程序的阅读技巧等。

2. Go 并发编程实战 

并发编程不是少数派技能,每个程序员都要尝试掌握_编程语言_05

作者:郝林

  • 国内知名Go语言技术布道者的再造之作 
  • 李响、谢孟军、刘奇、左玥、肖德时、Googol Lee、田琪等业内大咖倾心力捧 
  • 深入Go语言及其并发原理,挖出并发编程最佳实践,百样示例助你成为多核计算时代的Go程序高手 

本书介绍了使用Go语言进行现代计算机程序设计的各种方法,深入论述和展示了并发编程方面的知识和技巧,并用大量可独立运行的示例进一步说明和验证。本书从基础写起,以便让读者快速入门。而后又从背景和历史演进切入,深挖和展示Go语言提供的并发编程模型、运作机制和程序编写方法。最后,对一个较大示例进行了渐进式的展示和阐述,读者可以依此对全书内容进行一个完整的回顾和复习,并真正做到学以致用。

3. 七周七并发模型

并发编程不是少数派技能,每个程序员都要尝试掌握_java_06

作者:Paul Butcher

译者:黄炎 

  • 并发编程网站长方腾飞、《Go并发编程实战》作者郝林推荐
  • 借助 Java、Go 等多种语言的特长,深度剖析所有主流并发编程模型

并发编程近年逐渐热起来,Go等并发语言也对并发编程提供了良好的支持,使得并发这个话题受到越来越多人的关注。本书延续了《七周七语言》的写作风格,通过以下七个精选的模型帮助读者了解并发领域的轮廓:线程与锁,函数式编程,Clojure,actor,通信顺序进程,数据级并行,Lambda架构。书中每一章都设计成三天的阅读量。每天阅读结束都会有相关练习,巩固并扩展当天的知识。每一章均有复习,用于概括本章模型的优点和缺陷。

本书适合所有想了解并发的程序员。

并发编程不是少数派技能,每个程序员都要尝试掌握_人工智能_07

标签:并发,C#,编程,程序员,少数派,Go,线程,多线程
From: https://blog.51cto.com/u_15767091/6563985

相关文章

  • 状态机编程实例-嵌套switch-case法
    嵌入式软件开发中,状态机编程是一个比较实用的代码实现方式,特别适用于事件驱动的系统。本篇,以一个炸弹拆除的小游戏为例,介绍状态机编程的思路。C/C++语言实现状态机编程的方式有很多,本篇先来介绍最简单最容易理解的switch-case方法。1状态机实例介绍1.1炸弹拆除游戏如下是一个自制......
  • JS异步编程
    ES5中的Generator异步方案Generator使用function*foo(){console.log('start')try{constres=yield'foo'console.log(res)//bar}catch(e){console.log(e)}}constgenerator=foo()constres=generator.next()con......
  • C语言中的网络编程:套接字和网络通信
    网络编程在C语言中是一个非常重要的主题。在这篇博客中,我们将深入了解(socket)和网络通信的基本概念。套接字是实现网络通信的关键部分,它允许计算机之间通过网络进行数据交换。我们将探索如何创建套接字、建立连接、发送和接收数据等操作。首先,我们需要包含一些头文件,这些头文件包含......
  • Linux系统编程21-简单的more命令实现
    /dev/tty:键盘和显示器设备描述文件向该文件写->显示在用户屏幕向该文件读->从键盘获取用户输入当more需要用户输入可以从/dev/tty得到数据#include<stdio.h>#include<stdlib.h>#definePAGELEN24#defineLINELEN512voiddo_more(FILE*);intsee_more(FILE*);......
  • (Python编程)"添加Python,充分混和。"
    ProgrammingPython,3rdEdition翻译最新版本见:http://wiki.woodpecker.org.cn/moin/PP3eD23.1."AddPython.MixWell.Repeat."23.1."添加Python,充分混和。"Inthepriorchapter,weexploredhalfofthePython/Cintegration......
  • 豆瓣评分 8.6,近 5 万读者学习的 Android 经典最新版出版,承载无数程序员的回忆......
    题图|新的小绿人 ©Google“出色向导”对新手来说,学习Android开发一开始会很难。就像初次踏入异国他乡一样,即使会说当地语言,一开始也绝不会有舒服自在的感觉。周围人习以为常的东西你不能理解,原有的知识储备在新环境下也完全派不上用场。Android有自己的语言文化——使用K......
  • (Python编程)集成的方式
    ProgrammingPython,3rdEdition翻译最新版本见:http://wiki.woodpecker.org.cn/moin/PP3eD22.2.IntegrationModes22.2.集成的方式ThelasttwotechnicalchaptersofthisbookintroducePython'stoolsforinterfacingtotheoutsideworldanddiscussbothit......
  • Spring面向切面编程(AOP)
    在软件开发中,我们经常需要解决一些与业务逻辑无关的横切关注点(cross-cuttingconcerns),例如日志记录、性能监测、事务管理等。传统的面向对象编程方法往往将这些关注点与核心业务逻辑混杂在一起,导致代码的可维护性和可扩展性下降。为了解决这个问题,Spring框架引入了面向切面编程(AOP......
  • 裁员大潮来袭,程序员面试的这些技巧收藏好!
    题图|Silicon Valley导读近日,互联网大厂的「裁员」话题上了热搜,据说有的公司裁员数量高达总员工数的30%。在目前僧多肉少、行业内卷加剧的背景下,出现这种情况并不意外。但不论怎样,生活还得继续,不管是经历裁员的人,还是在主动寻求其他工作的人,都在观望新的机会。有人认为,只要是人......
  • Linux扩展篇-shell编程(五)-流程控制(二)-case语句
    基本语法:case"${item}"in1)echo"item=1";;2|3)echo"item=2oritem=3";;*)echo"default(noneofabove)";;esac注意事项:以case开始esac结尾case行尾必须为单词“in”,每......