我必須編寫一個程序,基本上是一個遊戲 - 簡而言之,有士兵(線程)收集資源,卸載基地中的資源,訓練自己和其他一些東西。我一直在閱讀關於線程以及如何使用它們進行固定的6-7小時馬拉松,但我想我需要一些幫助。所以,我可以寫一個非常簡單的程序,使用一個函數的線程,讓我們說一個打印「你好,我是線程號:N」的函數。但是,我沒有得到 - 例如,如果我們用print語句查找這個簡單的程序,我們給每個線程一個指向函數的指針,並且這些都是有趣和遊戲。但是,在我的情況下,我必須做多個功能,而我沒有得到的是我如何使所有線程都通過所有不同的功能?主要思想是使用互斥鎖和condvars,但是因爲我可以給它的參數中的每個線程只有一個函數指針,所以我不知道我該如何完成這個任務,因爲我有3-4個函數。我不認爲爲每個功能創建一個線程解決了這個問題,這是爲什麼:在C編程中的線程(linux)
Game begins!
Worker 1 is searching
Worker 1 is transporting
Worker 1 unloaded resources to Base station
Worker 2 is searching
Worker 2 is transporting
Worker 2 unloaded resources to Base stationW
Operation not supported
Worker 3 is searching
Worker 3 is transporting
Worker 3 unloaded resources to Base station
.....
b
Not enough resources
Worker 4 is searching
Worker 4 is transporting
Worker 4 unloaded resources to Base station
...
b
Worker 3 is constructing new building barracks
Worker 2 is searching
Worker 2 is transporting
Worker 2 unloaded resources to Base station
....
Worker 3 completed new building barracks
w
Warrior is being trained
Worker 3 is searching
Warrior is ready for duty
這必須是遊戲的輸出。不要介意W和B--只有一些必須滿足特定條件才能運行的操作。 所以我的問題是 - 我應該爲每個功能使用一個線程?我不想讓你解決我的問題,我將非常樂意啓發我,我應該如何解決這個問題,非常感謝!
將對象(如士兵)建模爲線程是一個非常糟糕的主意。重新思考你的設計。 – nwp
這是我的任務,我必須這樣做。這不是我的想法。 –