一些静态方法

可控制线程可见性

  • Thread.AllocateNamedDataSlot("user");  分配命名
    Thread.SetData(slot, "hello1");
     Thread.GetData(slot)
     Thread.FreeNamedDataSlot("user");  释放
  • ThreadStaticAttribute 
  • ThreadLocal<T>


    这些数据存储在TEB中是线程的空间开销(TLS:Thread Local Storage)

其他方法

Thread.Yield 当前线程放弃当前时间片,运行下一个线程

内存栅栏

  • Thread.MemoryBarrier
  • Thread.VolatileRead/Write

不进行缓存,每次读取数据都是从memrory中读取数据

MemoryBarrier =>

在此方法之前的内存写入都要及时从cpu cache中更新到 memory

在此方法之后的内存读取都要从memory中读取,而不是cpu cache

 

posted @ 2019-09-10 21:26  vvf  阅读(131)  评论(0编辑  收藏  举报