双标志先检查法
【摘要】
【知识回顾】
临界区互斥(软件方法)
基本思想:进程通过while循环判断对方的FLAG是否为true(是true则死循环);若用完临界区后则修改自己的FLAG。
【典例】假设有2个线程(编号为0和1)需要去访问同一个共享资源,为避免竞争状态的问题,必须实现一种互斥机制,使得在任何时候只能有一个线程访问这个资源,假设有如下一段代码...
【知识回顾】
临界区互斥(软件方法)
基本思想:进程通过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;
-
}
当一个线程想要访问临界资源,就调用上述的这个两个函数,例如,线程0的代码可能是这样的:
Enter_Critical_Section(0,1); (这里题目的形参只是指0和1线程编号==
文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。
原文链接:andyguo.blog.csdn.net/article/details/107733699
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)