gpt4 book ai didi

linux - rdts 标记时间截止日期

转载 作者:太空宇宙 更新时间:2023-11-04 11:42:33 32 4
gpt4 key购买 nike

我有一个“听起来”像这样的代码:

线程 1

now = rdtsc();
for_each_member_in_a_list {
if ( member_in_list.deadline() <= now ) {
do_something;
}
}

线程 2

now = rdtsc();
for_each_member_in_a_list {
member_in_list.updatedealine( foo(now, ...) );
}

虽然这在过去工作良好,但现在对于 SMP 系统此代码无法按预期工作。我想我会使用 clock_gettime 和 CLOCK_MONOTONIC,但我想先听听其他一些提示。

最佳答案

理论上 TSC 应该是主板上所有 CPU 之间的同步,但在某些 SMP 系统中它不是,这要怪主板制造商。此外,在一些较旧的芯片上,TSC 似乎会随着 CPU 的电源状态而改变,这使得它可能非常不可靠。 clock_gettime(CLOCK_MONOTONIC) 更可靠,但开销更大(这是一个系统调用),但这是迄今为止最好的方法。

我还假设您正在锁定您的数据结构:)

关于linux - rdts 标记时间截止日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/524502/

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