TestAndSet实现互斥锁
生活随笔
收集整理的這篇文章主要介紹了
TestAndSet实现互斥锁
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
包含lock函數和unlock函數。
首先定義一個全局變量flag,flag=1表明該鎖已經鎖住,flag=0表明鎖沒有鎖住。
lock函數里通過while循環不斷檢測flag是否等于1,如果等于1就一直循環并將flag設置為1。unlock()方法就將flag置為0。
static int flag=0;void lock(){while(TestAndSet(&flag,1)==1);//flag=1; }void unlock(){flag=0; } int TestAndSet(int *ptr, int new) {int old = *ptr;*ptr = new;return old; }總結
以上是生活随笔為你收集整理的TestAndSet实现互斥锁的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚函数表存放在哪
- 下一篇: oracle把时间段转换成每一天_在家办