此系列教程包括了多线程、锁、同步异步、线程池、任务、async/await、并行、并发等知识点,从零基础掌握多线程和异步,带你了解和走进同步和异步的世界。

  • 教程中每个小节都有代码示例
  • 深入原理,讲解深层知识
  • 由易到难,从入门到掌握
  • 循序渐进,一步步学习,一步步拓展知识面
  • 内容完整、齐全,可以系统式学习
  •  大量代码示例和场景实践
 本系列的教程,持续编写中,目前还没有完结。

主要讲述 C# 中的线程锁,如何使用锁去避免线程冲突和解决死锁问题。多线程中的资源争用会导致数据出现问题,我们如何使用锁解决呢?

原子操作是多线程中避免数据争用的解决方法之一,当操作不是原子性时,会发生什么?.NET 中自带了原子操作类型,那么我们该如何使用?我们可以使用锁实现原子操作嘛?

讲解进程同步的 Mutex 类型,解决多进程中的同步问题。教会如何使用进程锁,如何保持进程同步等。

Mutex 类

我们都知道有线程池,数据库连接池,那么你知道可以自己编写一个池嘛?我们可以使用资源池,限制多线程并发等情况下的工作进行情况。也解决了资源使用限制,避免同时执行的线程过多导致性能严重下降。

两个线程间进行通讯,相互发送通知,在线程同步和多种工作中可以使用到,可以控制线程的执行流程和逻辑。

AutoRestEvent 类

更加灵活地控制线程的流程,调度任务的执行。

多线程并发时,监控线程完成的任务数量和流程。在工作执行失败时,通过监控重新执行过程。

解决一个问题

控制多个并发的线程同步工作、协调,实现多个阶段的流程控制。

解决并发线程读写数据问题,避免出现赃数据,保证数据的可靠性;解决并发字典容易出现的问题。

关于线程阻塞,等待,CPU时间等的解释,了解等待对程序的性能影响,合理使用等待使得线程同步。

使用线程池,可以避免线程创建消耗等性能损失,可以不理会线程的生命周期,专注于任务逻辑,提升性能。

线程池

系列文章持续更新中。