TestAndSet实现互斥锁
生活随笔
收集整理的這篇文章主要介紹了
TestAndSet实现互斥锁
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
包含lock函數(shù)和unlock函數(shù)。
首先定義一個(gè)全局變量flag,flag=1表明該鎖已經(jīng)鎖住,flag=0表明鎖沒有鎖住。
lock函數(shù)里通過while循環(huán)不斷檢測flag是否等于1,如果等于1就一直循環(huán)并將flag設(shè)置為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; }總結(jié)
以上是生活随笔為你收集整理的TestAndSet实现互斥锁的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 虚函数表存放在哪
- 下一篇: 百度面试 php后端,2019.7最惨的