【知识回顾】
临界区互斥(软件方法)
基本思想:进程通过while循环判断对方的FLAG是否为true(是true则死循环);若用完临界区后则修改自己的FLAG。
【典例】假设有2个线程(编号为0和1)需要去访问同一个共享资源,为避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程访问这个资源,假设有如下一段代码:
Bool flag[2];//flag数组,初始化为FALSE
Enter_Critical_Section(int my_thread_id,int other_thread_id){
While(flag[other_thread_id]==TRUE);//空循环语句
Flag[my_thread_id]=TRUE;
}
Exit_Critical_Section(int my_thread_id,int other_thread_id){
flag[my_thread_id]=FALSE;
}
当