gpt4 book ai didi

c++ - thread::get_id (C++11) 是免费的吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:53 26 4
gpt4 key购买 nike

我想测试调用我的一个类的不同函数的线程。我有一个关键时间线程,我不希望任何人调用一个可能调用 new 的函数,以便从该线程调用。但是,由于这 2 个函数是公共(public)的,我无法通过语言强制执行。

我的想法是测试线程id。假设我可以确保初始化线程 ID 的调用在正确的线程中,我只需要在其他调用中调用 thread::get_id() 并与我保存的线程 ID 进行比较。

问题是我也想在关键线程中测试这个ID,但我不能锁定那个线程。

因此我的问题是:thread::get_id() 是否没有锁定(最糟糕的执行时间是什么时候)?

最佳答案

标准不保证 thread::get_id()std::this_thread::get_id() 是否是无锁的,甚至考虑到它们的复杂性。

恐怕您的问题的答案是特定于实现的,具体取决于您的特定标准库和底层线程库。

关于c++ - thread::get_id (C++11) 是免费的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16814411/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com