例如,我有一个机械师(x)进程,其中x可以代表机械师拥有的各种工具。机械师分为三种类型,一种使用 Screwdriver ,另一种使用锤子,另一种使用刷子。
制造产品需要所有三种工具。机器人流程使用其中一个工具,并从拥有这些工具的机械师那里获取另外两个工具来完成产品。这个过程会无限期地重复(机器人每次都可能使用不同的启动工具)。
我需要使用信号量编写一个进程管理器,真的很困惑:/
基本上我需要伪代码
最佳答案
我假设您有多个机器人,每个机器人都在自己的线程中构建产品?
也许是这样的:每个机器人等待并保留 Screwdriver ,然后对锤子等执行相同的操作。构建产品后释放所有工具。一个重要的考虑因素是以一致的顺序保留工具;否则您将面临僵局的风险。
关于c++ - C 中信号量的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425702/