[英]std::thread in C++11, how to ensure a thread is finished inside a destructor
我想確保在銷毀對象之前完成線程。
這是我能想到的最基本的示例:
struct User {
std::thread worker_thread;
~User() {
if (worker_thread.joinable()) {
worker_thread.join();
}
}
};
這是解決問題的正確方法嗎?
我也認為評論中提到的方法很好,但是如果需要,您需要確保正確退出線程。
例如,如果您有一個遞減計數的循環計數器,則需要在長時間等待的隊列之前正確關閉。 例如,當您有一個“無盡的”布爾條件必須切換時,等等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.