系列大纲

目前只整理到第二章,线程同步,笔者后面会慢慢更新,争取能把这本书中精华的知识都分享出来。
C#多线程编程系列(一)- 简介
C#多线程编程系列(二)- 线程基础
C#多线程编程系列(三)- 线程同步
C#多线程编程系列(四)- 使用线程池
C#多线程编程系列(五)- 使用任务并行库

源码下载点击链接 示例源码下载

一、前言

在C#学习过程中,多线程一直都是比较难的部分,因为其中涉及到很多与操作系统相关的知识。比如:如何进行多线程编程、线程同步、线程锁、线程异步、并行编程、并行集合等等的知识。所以笔者在学习过程中也是遇到了重重困难,而且一直没有好的教程。

但是笔者在浏览GitHub时,发现有大佬已经推荐了一本新书,《MULTITHREADING WITH C# COOKBOOK SECOND EDITION》,其中主要就是讲如何在C#中使用多线程的。看到这本书笔者是如获珍宝,终于能有机会系统的学习多线程相关的知识了。

于是便有了这一个开篇,这个更多的是阅读这本书的笔记和一些按照书本上写的范例程序,当然也会有一些自己的思考。

二、目录结构

本书一共分为十一个章节,分别从线程基础、线程同步、线程池、Task并行库、C# 6.0特性、并发集合类、PLINQ、反应式编程、异步I/O、并行变成模式和在UWP .Net Core中应用来完成的介绍了C#多线程编程。如下图所示。

附上百度脑图链接

笔者认为本书真的是一本不可多得的好书,回想起那段被多线程虐过的日子。粗略的过了一遍以后就打算马上拿出来分享给大家,后文有相关的购买链接,大家也可以直接在某宝、某东搜索关键字,价格也是比较便宜的,多多支持正版。

四、章节结构

本书主要是偏实践应用一些,其中每个章节中的技术说明都分为三个部分,准备工作(Getting ready)、实现方式(How to do it...)和实现原理(How it works...)

本文节节选第一章的第一小节举例,首先是准备工作。

1.准备工作

2.实现方式

3.实现原理

国外的书一般都是比较偏理论,像这种理论和实践结合的还是比较少,所以第一时间推荐给大家。

五、相关链接

附上购买地址,大家还是多多支持正版.

《MULTITHREADING WITH C# COOKBOOK SECOND EDITION》购买地址

补充,本书有中文翻译版本,由黄博文大佬翻译,但是好像还是第一版。

《C#多线程编程实战》购买地址

C#多线程编程系列(一)- 简介的更多相关文章

  1. Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) JAVA日志的前世今生 .NET MVC采用SignalR更新在线用户数 C#多线程编程系列(五)- 使用任务并行库 C#多线程编程系列(三)- 线程同步 C#多线程编程系列(二)- 线程基础 C#多线程编程系列(一)- 简介

    Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 ...

  2. C#多线程编程系列(五)- 使用任务并行库

    目录 1.1 简介 1.2 创建任务 1.3 使用任务执行基本的操作 1.4 组合任务 1.5 将APM模式转换为任务 1.6 将EAP模式转换为任务 1.7 实现取消选项 1.8 处理任务中的异常 ...

  3. C#多线程编程系列(二)- 线程基础

    目录 C#多线程编程系列(二)- 线程基础 1.1 简介 1.2 创建线程 1.3 暂停线程 1.4 线程等待 1.5 终止线程 1.6 检测线程状态 1.7 线程优先级 1.8 前台线程和后台线程 ...

  4. C#多线程编程系列(四)- 使用线程池

    目录 1.1 简介 1.2 在线程池中调用委托 1.3 向线程池中放入异步操作 1.4 线程池与并行度 1.5 实现一个取消选项 1.6 在线程池中使用等待事件处理器及超时 1.7 使用计时器 1.8 ...

  5. C#多线程编程系列(三)- 线程同步

    目录 1.1 简介 1.2 执行基本原子操作 1.3 使用Mutex类 1.4 使用SemaphoreSlim类 1.5 使用AutoResetEvent类 1.6 使用ManualResetEven ...

  6. Qt C++ 并发,并行,多线程编程系列1 什么是并发

    什么是并发,并发往简单来说就是两个或多个独立的任务同时发生,在我们的生活中也是随处可见.如果把每个人都当作一个独立的任务,那每个人可以相互独立的生活,这就是并发. 在计算机的系统里面,并发一般有两种, ...

  7. 5天玩转C#并行和多线程编程 —— 第五天 多线程编程大总结

    5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编 ...

  8. 5天玩转C#并行和多线程编程 —— 第四天 Task进阶

    5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编 ...

  9. 5天玩转C#并行和多线程编程 —— 第三天 认识和使用Task

    5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编 ...

随机推荐

  1. selenium+python自动化83-pip安装selenium报Read time out HTTPSConnectionPool(host='pypi.python.org' port443)

    遇到问题 1.有些小伙伴在用pip安装selenium时候报 Read time out HTTPSConnectionPool(host='pypi.python.org' port443) 2.估 ...

  2. 清除MAC 可清除空间

    一.首先:查到了官方解释 https://support.apple.com/zh-cn/HT202867官方说 在 macOS Sierra 中,当您打开优化 Mac 储存空间时,会显示“可清除”内 ...

  3. django2.0数据展示流程

    之前刚刚实现了数据添加的流程,那么数据展示是怎么回事 1 先在 views.py 中定义函数 增加获取数据的方式 from django.shortcuts import render from bl ...

  4. mybatis 学习五 二级缓存不推荐使用

    mybatis 二级缓存不推荐使用 一 mybatis的缓存使用. 大体就是首先根据你的sqlid,参数的信息自己算出一个key值,然后你查询的时候,会先把这个key值去缓存中找看有没有value,如 ...

  5. 学习 TCP 三次握手和四次挥手

    TCP三次握手和四次挥手的问题在面试中是最为常见的考点之一.很多读者都知道三次和四次,但是如果问深入一点,他们往往都无法作出准确回答. 本篇尝试使用动画来对这个知识点进行讲解,期望读者们可以更加简单地 ...

  6. Type Object——类型对象

    clr会为应用程序使用的每个类型创建一个内部数据结构,这种数据结构称为类型对象. 具有泛型类型参数的类型称为开放类型(open type),CLR禁止构造开放类型的任何实例. 代码引用一个泛型类型时, ...

  7. css中的display(显示)和visibility(可见性)

    display定义和用法 display 属性规定元素应该生成的框的类型. 说明 这个属性用于定义建立布局时元素生成的显示框类型.对于 HTML 等文档类型,如果使用 display 不谨慎会很危险, ...

  8. Leetcode:Add Two Numbers分析和实现

    Add Two Numbers这个问题的意思是,提供两条链表,每条链表表示一个十进制整数,其每一位对应链表的一个结点.比如345表示为链表5->4->3.而我们需要做的就是将两条链表代表的 ...

  9. 关于ueditor与arcgis js api同用会报错的问题

    在ueditor与arcgis js api共用时,需要将ueditor\third-party\zeroclipboard\ZeroClipboard.js中的 if (typeof define ...

  10. strip命令

    去掉文件里调试和符号信息,文件大小变小,一般在发布的时候使用. 主要作用于可执行文件,动态库,目标文件等. 可参考:http://blog.csdn.net/stpeace/article/detai ...