4

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

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

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

因此我的问题是:是否thread::get_id()无锁(以及最差的执行时间是什么时候)?

4

1 回答 1

7

该标准不保证是否thread::get_id()std::this_thread::get_id()锁,甚至不保证其复杂性。

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

于 2013-05-29T13:04:16.120 回答