WaitGroup
本质上是用于等待一组任务完成的计数同步原语
TAG_COLLECTION //
共有 7 篇笔记使用了这个 Tag。
本质上是用于等待一组任务完成的计数同步原语
简单来说,就是不可被中断的操作,要么完全执行,要么不执行,不存在中间状态
首先,CPU 访问速度和主内存的运行速度一定存在差异,且 CPU 的速度快于内存的速度。假设没有缓存机制,那么代码的执行顺序——从内存中读取指令和必要数据等,然后运算,接着等待内存传输数据,这边等待的时候,就严重降低了运算速度——我们的运算上限被内存的运算速度给限制住了!
是共享状态进行访问或修改的代码片段,要求在任意时刻,线程执行到这个片段的时候,只有唯一一种执行流可以正确执行以保证数据的不变性
或许可以大致分为三个部分 ——
虽然一直在说“锁可以保护临界区资源”,但是忽然发现笔记中没有任何一篇专门说锁的??!
与锁不同,它感觉更偏向是线程之间通讯的一种方式 —— A 因需要等待某条件为真后才能继续运行于是进入 waiting 状态;此时 B 执行到设置这个条件为真后, A 继续运行