2011-12-08 61 views
0

例如,我有一個機械師(x)過程,其中x代表機械師擁有的各種工具。有三種機械師,一種是螺絲刀,另一種是錘子,另一種是刷子。在C中使用信號量?

製造產品需要三種工具。機器人過程採用其中一種工具,並從機械師那裏獲取其他兩種工具來完成產品。這個過程無限地重複(機器人每次可能採用不同的啓動工具)。

我需要編寫使用旗語一個進程管理器,真的很困惑:/

基本上我需要僞

回答

0

我假設你有多個機器人,每個都在它自己的線程構建的產品?

也許是這樣的:每個機器人等待並預留螺絲刀,然後對錘子等做同樣的事情。建立產品後釋放所有工具。一個重要的考慮因素是以一致的順序保留工具;否則你可能會陷入僵局。

0

正如您所知,信號量是一種同步機制,用於幫助同步多個進程/線程之間的共享對象。另外請記住,因爲信號量是特定於進程的,所以如果一個線程鎖定它,另一個線程可以解鎖它。現在基於上述概念,如果您可以正確定義資源,以及流程/線程將如何獲取(我的意思是,可以使用一個工具完成一些工作,或者需要多個工具),以獲得一個獨立工作完成等等,這對你和我們來說很容易互相幫助。