C++ 中"main"线程的 ID
id of "main" thread in c++
c 有没有办法获得"主"程序线程的ID?
我看到std::this_thread::get_id()
获得了当前执行线程的ID,但我需要main
的ID,原始程序线程。我看不到任何功能可以得到。
原因是我有一些非线程安全的内部功能,只能在应用程序的原始线程上调用,以确保我想做: -
assert(std::this_thread::get_id() == std::main_thread::get_id());
但是当然没有一个功能,我看不到任何方法可以获取这些信息。
您可以保存它,而this_thread
仍然是原始线程:
std::thread::id main_thread_id;
int main() {
main_thread_id = std::this_thread::get_id(); // gotcha!
/* go on */
}
此主题似乎在这里进行了很多次讨论,例如在此主题中:
- 获取流程主线程的手柄
您可以找到一些解决方案,但是我只是想到相反...启动新线程时,只需向其提供主线程的ID,然后将其存储在其他线程中。如果这不会在整个线程的生活中改变,那么您就可以通过这些手柄来引用"主"线程。
相关文章:
- 我应该在C++中打印线程 ID 吗?
- 我可以使用Qt线程ID为每个线程创建唯一的缓存吗?
- 这种基于线程 ID 的同步是否安全整洁?
- OpenMP:当我按线程 ID 访问共享变量时,我是否需要一个关键部分
- C 不同的线程在FreeBSD 10上具有相同的线程ID
- 如何获取正确的线程 ID 和值
- 调试器看到的输出线程 ID
- 如何从父线程中提取 pthread 的任务 id(tid)
- 是否可以向特定的线程 ID 发送信号?
- 与上一个线程具有相同ID的线程同步
- C++ 中 OpenMP 中的有序线程 ID
- 如何通过id获取线程对象?
- 您可以在 OpenMP 中将特定线程 ID 分组到唯一的任务组中吗?
- 查找称为函数C 的线程ID
- 确定进程的输入线程 ID
- C++ 中"main"线程的 ID
- SetWindowShookex(WH_KEYBOARD)无法与线程ID一起使用
- 在性能方面获取线程 ID 是否昂贵
- 标准::线程::id的要求.可以雾化吗?
- 如何知道谁是给定线程 ID 的父线程