2011-12-08 62 views
0

例如,我有一个机械师(x)过程,其中x代表机械师拥有的各种工具。有三种机械师,一种是螺丝刀,另一种是锤子,另一种是刷子。在C中使用信号量?

制造产品需要三种工具。机器人过程采用其中一种工具,并从机械师那里获取其他两种工具来完成产品。这个过程无限地重复(机器人每次可能采用不同的启动工具)。

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

基本上我需要伪

回答

0

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

也许是这样的:每个机器人等待并预留螺丝刀,然后对锤子等做同样的事情。建立产品后释放所有工具。一个重要的考虑因素是以一致的顺序保留工具;否则你可能会陷入僵局。

0

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