lock初值为FALSE
do{ key=TRUE; do{ swap(&key,&lock); }while(key!=FALSE); 临界区操作 ... lock=FALSE; }while(TRUE);
妙啊!