2

APR ライブラリを使用して、C++ で移植可能なマルチスレッド プログラムを作成しています。問題は、スレッドが必要ないときにスレッドをスリープ状態にする必要があることですが、そのための機能がマニュアルに記載されていません。

ネイティブ システム関数を使用せずに APR スレッドをスリープさせる方法はありますか? OS固有のコードは避けたいと思います。ありがとうございました。

4

2 に答える 2

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
    );

こちらを参照してください。

于 2011-05-02T08:29:39.123 に答える
2

...そして、「apr_time.h」には、APR にもスリープ機能があります。

void apr_sleep (apr_interval_time_t t)

リンク:寝る

于 2013-02-12T14:05:24.847 に答える