c++ - C 中信号量的使用?

标签 c++ c semaphore

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

制造产品需要所有三种工具。机器人流程使用其中一个工具,并从拥有这些工具的机械师那里获取另外两个工具来完成产品。这个过程会无限期地重复(机器人每次都可能使用不同的启动工具)。

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

基本上我需要伪代码

最佳答案

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

也许是这样的:每个机器人等待并保留 Screwdriver ,然后对锤子等执行相同的操作。构建产品后释放所有工具。一个重要的考虑因素是以一致的顺序保留工具;否则您将面临僵局的风险。

关于c++ - C 中信号量的使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8425702/

相关文章:

c - 信号和信号量系统V

c++ - std::array 在存储大对象时是否仍然缓存友好?

c++ - 返回以点C++结尾的数字行中出现次数最多的数字

c++ - 如何在MFC中分离一个CString

c - 我应该使用什么预处理器指令或其他方法来辨别 32 位和 64 位环境?

c - SSL 上下文方法 - 通用与服务器/客户端

C++ 服务器在 _UTF8_init() on free() 中因 abort() 而崩溃

c++ - 将 std::string 数字转换为十六进制数

ruby - 运行守护进程,当某个组中的最后一个其他进程结束时,该守护进程将结束

PHP sem_get() 不起作用