首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找信号量互锁的机制?

寻找信号量互锁的机制?
EN

Stack Overflow用户
提问于 2014-02-17 12:17:26
回答 1查看 70关注 0票数 1

我有两个信号量,每个大小为10。这两个信号量是互斥的,如下所示:

最初,这两个信号量是空的。如果其中一个信号量有内容,它就会阻塞另一个信号量,使其无法填充内容。只有当原始信号量被清空时,它才会解除对其他信号量的阻塞。而且这个过程还在继续。

在编程意义上,如果一个信号量有内容,另一个信号量就会被内核阻塞。我该如何去实现这样的锁呢?

EN

回答 1

Stack Overflow用户

发布于 2014-02-17 12:36:29

可以像这样定义一个类,并使用额外的Pairing布尔值

代码语言:javascript
复制
 class semaphore

{
            int value;
            Boolean Locked;
            Boolean Paired;


        voidsetvalue(int val)
        {
           if(Paired==true)
           {
           Locked=true
           }

           if(locked==false)
           {
           value=val;
           locked=true;
           }

         }
         void release()
         {
            Locked=false;
            value=0; 
          }
         void releasepair()
         {
            Paired=false;

         }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21820643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档