如何休眠APR线程

How to sleep an APR thread?

本文关键字:APR 线程 休眠 何休眠      更新时间:2023-10-16

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

你现在有一种方法如何睡眠一个APR线程而不需要使用本地系统功能吗?我想避免任何特定于操作系统的代码。谢谢你。

如果您只是想将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
    );

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

void apr_sleep (apr_interval_time_t t)

链接:sleep