我的程序从文本文件中读入迷宫,然后主程序创建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