2017-07-11 5 views
-2

私はPOSIXスレッドを学んでいます。私の質問 - pthreadを中断して再開する方法は? Javaのスレッドと同様に、wait、notifyなどの関数がありますか?私はいくつかの状況に応じて単一のpthreadを複数回実行したい。事前にPOSIXスレッドの中断と再開

感謝のpthreadを中断し、再開する方法

+0

https://stackoverflow.com/questions/11468333/linux-threads-suspend-resumeこれには必要なものがあります。 – J0hn

答えて

0

? Javaのスレッドと同様に、wait、notifyなどの 関数がありますか?

条件変数についてはpthreadを参照してください。基本的に、条件変数を使用すると、スレッドをさらに進める前に条件をチェックできます。たとえば、ある条件が満たされている場合にのみ進める3つのスレッドがあるとします。この状態がfalseの場合、スレッドは保持しているmutexロックを解放して「待機」します。タイプpthread_mutex_tの共有オブジェクトのロックが解除されると、他のスレッドが先に進み、ある時点で状態が真(願わくは)になるでしょう。 pthread_cond_waitという機能を確認してください。

この条件が真(または満たされる)になると、pthread_cond_signal/pthread_cond_broadcastを使用して、pthread_cond_tオブジェクトで待機していたスレッドに「通知」することができます。これらのスレッド(この簡単な説明では3つのスレッド)は、自動的に(もちろん、同時に1つのスレッド)ミューテックスロックを取得し、ビジネスについて取り上げます。

チェックthisチュートリアル。

状況に応じて、単一のpthreadを複数回実行したいとします。

さらに気をつけてください。

関連する問題