我正在编写一个多线程应用程序。在一个部分中,将删除一个线程。我想给Thread一些时间来清理所有内容,但是可能有一点,线程等待userdata和blocks。我想加入线程,如果在X秒内不可能,那么它将被删除。如何在不使用boost的情况下使用C ++ 11实现这一目标?我知道boost有一个try_join_for,但是std :: thread似乎没有这个功能。
更好理解的代码:
while (clientRunning) {
char data[8192];
recv(sockfd,data,8192,MSG_WAITALL);
}
此功能在线程内(减少到最小)。现在我想使用thread-> join();加入这个主题。并且加入超时,所以它会尝试加入让我们说2分钟,如果没有发生,它将强制终止该线程。