【发布时间】:2020-12-24 04:38:36
【问题描述】:
我有一些 c++ 库代码,可以为每个访问它的线程创建一些簿记数据(基于线程 ID)。我想在线程结束时清理该数据。有没有办法(如果不是可移植的,那么使用 win-api)在线程结束时得到通知?
// 简化示例:
std::mutex mutex_;
std::unordered_map<std::thread::id, int> thread_accesses_;
void LibFunction() {
std::thread::id thread_id = std::this_thread::get_id();
mutex_.lock();
std::unordered_map<std::thread::id, int>::const_iterator it = thread_accesses_.find(thread_id);
if(it == thread_accesses_.end()) {
thread_accesses_[thread_id] = 0;
} else {
thread_accesses_[thread_id]++;
}
mutex_.unlock();
}
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
标签: c++ multithreading winapi