私はPOSIXスレッドを学んでいます。私の質問 - pthreadを中断して再開する方法は? Javaのスレッドと同様に、wait、notifyなどの関数がありますか?私はいくつかの状況に応じて単一のpthreadを複数回実行したい。事前にPOSIXスレッドの中断と再開
感謝のpthreadを中断し、再開する方法
私はPOSIXスレッドを学んでいます。私の質問 - pthreadを中断して再開する方法は? Javaのスレッドと同様に、wait、notifyなどの関数がありますか?私はいくつかの状況に応じて単一のpthreadを複数回実行したい。事前にPOSIXスレッドの中断と再開
感謝のpthreadを中断し、再開する方法
? 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を複数回実行したいとします。
さらに気をつけてください。
https://stackoverflow.com/questions/11468333/linux-threads-suspend-resumeこれには必要なものがあります。 – J0hn