我正在使用APR库在C ++中创建可移植的多线程程序。问题是我需要在不需要时睡一个线程,但manual中没有提到这样做的功能。
现在,您是否有办法在不需要使用本机系统功能的情况下睡眠APR线程?我想避免任何特定于操作系统的代码。 谢谢。
答案 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)