思路贯通一下:
因为计算机CPU 软件代码无法控制,CPU高性能处理多线程的时候 是无序的,可能存在业务顺序不对/数据共享安全隐患的问题。而且线程变多的同时 要考虑管理 资源 和调度。
从而衍生出的 服务概念: 线程同步控制安全 线程池控制调度资源
从而为了控制安全衍生的知识点:线程状态 线程优先级 线程同步(事件AutoResetEvent 内核/ManualResetEventslim 混合/CountdownEvent,信号量Semaphore完全内核模式/SemaphoreSlim混合模式)
原子操作(volatile Interlocked) 自旋锁SpinLock (用户模式) 互斥锁Mutex (内核模式 可跨进程) 混合锁Monitor | lock (混合模式) 读写锁(ReaderWriterLockSlim生产-消费模式)
从而为了控制资源合理化的知识点: 线程池 后台线程(Thread pool QueueUserWorkItem 吞吐量 ) 以及 GC回收 抢占/合作模式
通过这些 来控制 资源合理化利用 以及 保证安全数据 保证业务线程顺序
WaitHandle 内核模式 回调句柄
|——EventWaitHandle 事件构造。
|——AutoResetEvent
|——ManualResetEvent
|——Semaphore 信号量构造。
|——Mutex 互斥体构造。
应用: 注重应用层
知道这一系列的过程 就行了 底层怎么封装的 就不操大佬的心了 反正就告诉我怎么用就行了 用啥类 啥函数 说到底就是如何使用API 呗
怎么写? 那就了解 API 呗 线程封装API 的发展过程呗 说到底 开发 关注的就是 封装的API 发展过程 都有哪些函数调用 我写出来就完事了 别的不操心了
发展:Thread->Thread pool -> Task -> async await
APM(异步编程模型) -EAP(基于事件的异步编程模型)-TPL(任务并行库 组合任务便利 API)PLINQ -异步函数 C#5.0 async
委托:https://www.cnblogs.com/laoyu/archive/2013/01/13/2859000.html
API: Thread start sleep join