例如,我有一个machinist(x)进程,其中x可以表示一个machinist拥有的各种工具。有三种类型的机械师,一种使用螺丝刀,另一种使用锤子,另一种使用刷子。
所有这三种工具都是制造产品所必需的。机器人过程采用其中一个工具,并从拥有它们的机械师那里获得另外两个工具来完成产品。这个过程无限地一次又一次地迭代(每次机器人都可能使用不同的启动工具)。
我需要使用信号量编写一个进程管理器,真的很困惑:/
基本上我需要伪代码
发布于 2011-12-08 11:40:31
我假设你有多个机器人,每个机器人都在自己的线程中构建一个产品?
也许是这样的:每个机器人等待并保留螺丝刀,然后对锤子做同样的事情,等等。在构建产品后发布所有工具。一个重要的注意事项是以一致的顺序保留工具;否则就会有死锁的风险。
发布于 2011-12-08 15:13:11
正如您可能知道的,信号量是一种同步机制,用于帮助在多个进程/线程之间同步共享对象。还要记住,因为信号量是特定于进程的,如果一个线程锁定它,另一个线程可以解锁它。现在基于上面的概念,如果你可以正确地定义你的资源,以及进程/线程将如何获得(我的意思是,可以用一个工具做一些工作,或者他们需要多个工具)来完成一项独立的工作……等,你和我们将很容易互相帮助。
https://stackoverflow.com/questions/8425702
复制相似问题