win线程同步--循环锁简单理解

来源:互联网 发布:js犀牛 视频教程下载 编辑:程序博客网 时间:2024/05/15 05:15

线程同步的解决方案之一,循环锁.

伪代码:

gloabl  resourceInUser=false;

 Syncronize  fun()

{

     while(resourceInUser==true)

            sleep(0);//可以switchToThread()

     resourceInUser=true;

  //---access the resource

      ................

      resourceInUser=false;

循环锁适应于多CPU的环境,在单CPU 的情况下,存在浪费CPU时钟周期,争用高速缓存行.

注意的是CPU高速缓存行在多核时反而会造成性能下降,可以利用线程的亲缘性来解决.

参考:wincore--178

原创粉丝点击