首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C中使用信号量?

在C中使用信号量?
EN

Stack Overflow用户
提问于 2011-12-08 11:18:01
回答 2查看 243关注 0票数 0

例如,我有一个machinist(x)进程,其中x可以表示一个machinist拥有的各种工具。有三种类型的机械师,一种使用螺丝刀,另一种使用锤子,另一种使用刷子。

所有这三种工具都是制造产品所必需的。机器人过程采用其中一个工具,并从拥有它们的机械师那里获得另外两个工具来完成产品。这个过程无限地一次又一次地迭代(每次机器人都可能使用不同的启动工具)。

我需要使用信号量编写一个进程管理器,真的很困惑:/

基本上我需要伪代码

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-12-08 11:40:31

我假设你有多个机器人,每个机器人都在自己的线程中构建一个产品?

也许是这样的:每个机器人等待并保留螺丝刀,然后对锤子做同样的事情,等等。在构建产品后发布所有工具。一个重要的注意事项是以一致的顺序保留工具;否则就会有死锁的风险。

票数 0
EN

Stack Overflow用户

发布于 2011-12-08 15:13:11

正如您可能知道的,信号量是一种同步机制,用于帮助在多个进程/线程之间同步共享对象。还要记住,因为信号量是特定于进程的,如果一个线程锁定它,另一个线程可以解锁它。现在基于上面的概念,如果你可以正确地定义你的资源,以及进程/线程将如何获得(我的意思是,可以用一个工具做一些工作,或者他们需要多个工具)来完成一项独立的工作……等,你和我们将很容易互相帮助。

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

https://stackoverflow.com/questions/8425702

复制
相关文章

相似问题

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