我目前正在處理,我相信,是一個相當簡單的問題,我似乎無法解決。POSIX pthread多次使用相同的線程
我在我的程序中有兩個線程。線程運行得很好,但它是線程的重用,導致了問題。僞代碼如下:
main() {
create thread 1;
create thread 2;
join thread 1;
}
thread 1 {
while true
if(some condition)
join thread 2
// Use the returned value from thread 2
}
thread 2 {
while true
if(some condition)
// do something
exit thread 2(with some return value to thread 1).
}
所以,當某些條件線程1被滿足,我希望它termine線程2,直到它的工作要做,這工作得很好。線2到達狀態並退出線程。但是,當我回到線程1的while循環並再次達到該條件時,我希望它再次重新運行線程2。這是導致問題的原因。線程1執行一次後,線程1會忽略我的連接語句,並在while循環中進行輪詢,這是唯一正在運行的線程。
所以我的問題是。我怎樣才能重用連接線程2屬性,所以程序連續運行?
你想*重新開始*第2步,還是要重複使用它的返回?如果後者只是保存它,並且不要調用'join'。如果前者,然後重置條件並重新啓動線程。 –
它是前者。線程2更改兩個線程之間共享的變量。我想重用線程2,所以變量有正確的語句,供線程1使用。所以問題是,我該如何重新啓動他的線程? –