阅读Joseph Albahari 的线程教程,以下内容被提及为内存屏障的生成器:
- C# 的
lock
语句 (Monitor.Enter
/Monitor.Exit
) Interlocked
类的所有方法- 使用线程池的异步回调——包括异步委托、APM 回调和任务延续
- 设置和等待信号结构
- 任何依赖于信号的东西,例如启动或等待一个任务
此外,Hans Passant 和 Brian Gideon添加了以下内容(假设其中没有一个已经属于前面的类别之一):
- 启动或唤醒线程
- 上下文切换
Thread.Sleep()
我想知道这个列表是否完整(如果甚至可以实际制作完整的列表)
编辑添加建议:
- 易失性(读取意味着获取栅栏,写入意味着释放栅栏)