2
Condition::Condition()
{
    #ifdef WIN32
    pthread_cond_init(&_condition, NULL);
    #else
    pthread_condattr_t attr;
    pthread_condattr_init(&attr);
    int r;
    if ((r = pthread_condattr_setclock(&attr, CLOCK_MONOTONIC))) {
        THROW("set clock failed %d", r);
    }
    pthread_cond_init(&_condition, &attr);
    pthread_condattr_destroy(&attr);
    #endif
}

在ndkr8d中,没有pthread_condattr_setclock这个方法。</p>

默认情况下,此时钟 ID 为 CLOCK_REALTIME,但可以通过使用已调用 pthread_condattr_setclock() 的 pthread_condattr_t 初始化条件变量来更改(例如更改为 CLOCK_MONOTONIC)。从什么时间函数我需要与 pthread_cond_timedwait 一起使用?

我的问题:我不知道条件变量的默认值是 CLOCK_MONOTONIC 还是 Android 中的 CLOCK_REALTIME。如果 CLOCK_MONOTONIC,我不需要解决问题。

非常感谢。

4

0 回答 0