C#多线程
线程 被定义为程序的执行路径。每个线程都定义了一个独特的控制流。如果您的应用程序涉及到复杂的和耗时的操作,那么设置不同的线程执行路径往往是有益的,每个线程执行特定的工作。
线程是轻量级进程。一个使用线程的常见实例是现代操作系统中并行编程的实现。使用线程节省了 CPU 周期的浪费,同时提高了应用程序的效率。
到目前为止我们编写的程序是一个单线程作为应用程序的运行实例的单一的过程运行的。但是,这样子应用程序同时只能执行一个任务。为了同时执行多个任务,它可以被划分为更小的线程。

线程生命周期
线程生命周期开始于 System.Threading.Thread 类的对象被创建时,结束于线程被终止或完成执行时。
下面列出了线程生命周期中的各种状态:
未启动状态:当线程实例被创建但 Start 方法未被调用时的状况。
就绪状态:当线程准备好运行并等待 CPU 周期时的状况。
不可运行状态:下面的几种情况下线程是不可运行的:
*已经调用 Sleep 方法
*已经调用 Wait 方法
*通过 I/O 操作阻塞
死亡状态:当线程已完成执行或已中止时的状况。

主线程
在 C# 中,System.Threading.Thread 类用于线程的工作。它允许创建并访问多线程应用程序中的单个线程。进程中第一个被执行的线程称为主线程。
当 C# 程序开始执行时,主线程自动创建。使用 Thread 类创建的

课程目录:

1.Thread基础之从windbg角度理解你必须知道的时间和空间上的开销
2.Thread实例方法介绍之生命周期管理的Start
3.Thread静态方法介绍之认识三大TLS[线程本地存储]操作ThreadStat
4.Thread静态方法介绍之通过经典releaseBug认识MemoryBarrier
5.从windbg角度理解ThreadPool和Thread的差异以及对工作线程
6.定时任务之使用RegisterWaitForSingleObjec
7:Task和Task[T]之启动任务的三大方式Run
8.Task详解之7种阻塞方式Wait,WaitAll,WaitAny
9.Task实用枚举之TaskCreationOptions
10.任务延续之使用TaskContinuationOptions
11.使用CancellationTokenSource解决多任务协作式取消和超时分析
12.Task返回值和Task的异常处理之
13. 并行编程新模型之三大Parallel.For,Foreach,Invoke之使用和源码分析
14.PLinq【AsParallel,AsOrdered,AsSequential】
15.Task核心调度器【TaskScheduler】
16.带你一起看C#多线程模型【APM,EAP,TAP】
17.透过编译器从IL层面看异步编程await,async整个关键词的本质
18.线程同步之用户模式和内核模式锁的区别
19.内核模式锁机制之WaitHandle下事件信号量机制
20.内核模式锁之ReaderWriterLock读写锁
21.lock语法糖和Monitor的关系以及对对象同步
22.混合模式锁之对ManualResetEventSlim
23.四大并发集合类ConcurrentBag
24. CPU过高 , 死锁 , 内存爆满 之三大头疼问题
25.从算法,多线程,设计模式全内存优化护肤类目Top1商家