3

マルチスレッドコードには多くのスピンロックがあり、ほとんどの場合、他のスレッドが機能するのを待っているため、CPU使用率が大幅に低下します。Linuxでは、通常、pthread_cond_waitとpthread_cond_signalを使用してスレッドを一時停止し、シグナルが送信されたときにウェイクアップします。Boostライブラリにこのようなものはありますか?ざっと見てみると、何も見つかりませんでした。

Visual Studio 2005

4

2 に答える 2

4

それを見つけて、ブーストはそれらを条件変数と呼びます:http://www.boost.org/doc/libs/1_39_0/doc/html/thread/synchronization.html#thread.synchronization.condvar_ref

于 2009-06-03T06:13:52.097 に答える
1

Mutex または Semaphore を探しています。Boost ライブラリはMutex と Semaphoreをサポートしています。

Mutex はバイナリ セマフォであり、単にロックと見なされ、1 つのスレッドのみがクリティカル セクションを通過できるようにします。

セマフォをカウントすると、ロック (Mutex) の制限が厳しすぎる状況を単純化するのに役立ちます。

于 2009-06-03T06:06:27.630 に答える