我使用的並行線程在C.如何resuse線程 - 並行線程ç
我有需要創建4個線程ID爲0,1,2父線程,3 當父線程得到編程數據,它將設置拆分數據並將其分配給4個獨立的上下文變量 - 每個子線程一個。 子線程必須處理這些數據,同時父線程應該在這些線程上等待。 一旦這些子線程完成執行,它們將在相應的上下文變量中設置輸出並等待(重用)。 一旦父線程知道所有這些子線程都完成了這一輪,它就會計算全局輸出並將其打印出來。 現在它等待新的數據(子線程還沒有被殺死,他們只是在等待)。
如果父線程獲取更多數據,則重複上述過程 - 雖然已經創建了4個線程。
如果父線程收到一個kill命令(假設有特定類型的數據),它會向所有子線程指示並且它們自行終止。現在父線程可以終止。
我是碩士研究生,我遇到了上述情況的需要。我知道這可以使用pthread_cond_wait,pthread_Cond_signal來完成。我寫了代碼,但它只是無限期地運行,我不知道爲什麼。
我的猜測是,我編寫它的方式,我已經過度複雜的情況。瞭解如何實施這將是非常有幫助的。如果有需要,我可以發佈我的代碼的簡化版本,以顯示我正在嘗試做什麼(儘管我認爲我的方法有缺陷!)...
您能否給我提供任何見解如何使用pthreads來實現這個場景?
你可能想看看[這篇文章](http://stackoverflow.com/q/9275262/777186),其中的答案描述了各種主/工場景。還有一個答案詳細描述瞭如何使用POSIX。 – jogojapan 2012-04-20 05:04:04
對於所有四個線程完成其工作後所需的同步,您可能需要查看一下:http://www.lambdacs.com/cpt/FAQ.html#Q292 – alk 2012-04-20 06:45:14