如何睡APR线程?

时间:2011-05-02 08:18:17

标签: c++ c multithreading apr thread-sleep

我正在使用APR库在C ++中创建可移植的多线程程序。问题是我需要在不需要时睡一个线程,但manual中没有提到这样做的功能。

现在,您是否有办法在不需要使用本机系统功能的情况下睡眠APR线程?我想避免任何特定于操作系统的代码。 谢谢。

2 个答案:

答案 0 :(得分:4)

如果您只是想将CPU移交给其他线程,可以使用:

void apr_thread_yield(void);

否则,您可以使用:

apr_status_t apr_thread_cond_timedwait(
        apr_thread_cond_t *     cond,
        apr_thread_mutex_t *    mutex,
        apr_interval_time_t     timeout  
    );

apr_status_t apr_thread_cond_wait(
        apr_thread_cond_t *     cond,
        apr_thread_mutex_t *    mutex
    );

请参阅here

答案 1 :(得分:1)

...在APR中也有一个睡眠功能,在" apr_time.h":

void apr_sleep (apr_interval_time_t t)

链接:sleep