包含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;
}