win线程同步--循环锁简单理解
2007-06-08 08:56
232 查看
线程同步的解决方案之一,循环锁.
伪代码:
gloabl resourceInUser=false;
Syncronize fun()
{
while(resourceInUser==true)
sleep(0);//可以switchToThread()
resourceInUser=true;
//---access the resource
................
resourceInUser=false;
}
循环锁适应于多CPU的环境,在单CPU 的情况下,存在浪费CPU时钟周期,争用高速缓存行.
注意的是CPU高速缓存行在多核时反而会造成性能下降,可以利用线程的亲缘性来解决.
参考:wincore--178
伪代码:
gloabl resourceInUser=false;
Syncronize fun()
{
while(resourceInUser==true)
sleep(0);//可以switchToThread()
resourceInUser=true;
//---access the resource
................
resourceInUser=false;
}
循环锁适应于多CPU的环境,在单CPU 的情况下,存在浪费CPU时钟周期,争用高速缓存行.
注意的是CPU高速缓存行在多核时反而会造成性能下降,可以利用线程的亲缘性来解决.
参考:wincore--178
相关文章推荐
- 最简单生产消费者模型理解(线程同步,共享资源,信号
- 一些简单的例子让你在Java中能更好的学习并理解循环结构(1)!
- 简单快速的理解block的循环引用及__weak的使用条件
- CWinThread::Run() 简单理解
- 简单的for循环理解约瑟夫循环问题。
- RNN循环神经网络的直观理解:基于TensorFlow的简单RNN例子
- 学习Python第三天--简单数据、操作符、分支和循环一些小理解
- 迭代器就是重复地做一些事情,可以简单的理解为循环,在python中实现了__iter__方法的对象是可迭代的,实现了next()方法的对象是迭代器,这样说起来有
- 对Conjugate Gradient 优化的简单理解
- 【常用排序算法】以最简单的方式理解快速排序
- 简单理解Socket
- 1108 -- 最简单的循环
- WEB前端后端简单区别,通俗理解
- Deep learning:四十一(Dropout简单理解)
- 简单理解Struts2中拦截器与过滤器的区别及执行顺序
- 关于 威客,创客,极客,黑客的哲学理解(简单)
- 理解Promise简单实现的背后原理
- 简单理解常用设计模式(三)常用设计原则
- iOS 简单理解类的本质
- Android产品研发(二十五)-->MVC/MVVM/MVP简单理解