我的程序從文本文件中讀入迷宮,然後主程序創建3個不同的線程來深入這個迷宮並搜索出口。當一個線程發現退出時,它將在主線程中發佈它的解決方案路徑。多線程和pthread_join
在這個迷宮中,有一些陷阱,當一個線程遇到時會「死掉」,將這個陷阱的位置保存到全局的已發現陷阱點陣列中,以便其他線程知道應該避免的地方。在該線程死亡後,主程序將重新生成另一個線程來取代它的位置並繼續穿越迷宮。
一個線程可能遇到也可能不會遇到一個陷阱,而使用pthread_join只會等待一個特定的線程。我如何讓主線程同時等待每個線程?
你如何加入只有已經準備好的線程?就像在某處設置標誌一樣? – PlasmaHH 2013-02-13 10:39:01
我的線程存儲在pthread_t數組中,所以我可以使用全局整數來完成它嗎? 像這樣: pthread_mutex_lock(&mutex); while(!foundSolution) { pthread_cond_wait(&cond,&mutex); pthread_create(threads [exited],NULL,thrd_func,&pathfinder [exited]); } – 2013-02-13 11:07:33