我目前正在处理,我相信,是一个相当简单的问题,我似乎无法解决。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使用。所以问题是,我该如何重新启动他的线程? –