スレッドを無期限にスリープ状態にしたいと思っています。なぜなら、私のプログラムは信号を受信してプライマリスレッドで何もしないときにのみ動作するからです。したがって、すべての処理はシグナルハンドラ内で行われます。どのくらい無期限に寝ることができますか?Linuxで無期限にスレッドをスリープします。
答えて
私はあなたがpause
機能を探していると信じて:あなたは何ができる
http://pubs.opengroup.org/onlinepubs/9699919799/functions/pause.html
何かのように:for (;;) pause();
うん、一時停止はそれです。 – MarkR
無限ループの必要はありません。 'pause();'だけを使用してください。 – boramalper
@boramalper: 'pause'がシグナルを返すので、ループが必要です。 –
あなたが別のスレッドで何かをしているのであれば、そのスレッドでpthread_join
と呼ぶだけで、かなり永遠にブロックされます。条件変数を使用して同じ効果を達成できます。
私はChrisに同意します。彼はメインスレッドが子スレッドが終了するのを待ってから、それを終了することを提案しています。これは、あなたが望むだけでなく、子スレッドが死んだり死んだらゾンビを防ぎます。 –
それはすばらしい解決策です、クリス!ありがとう! – MetallicPriest
スレッドは殺すことができず、プロセスと同じ意味で「ゾンビ」になることはありません。スレッドに参加する気にならない場合は、単にスレッドをデタッチしてスレッド記述子のクリーンアップを心配する必要はありません。 –
セマフォを使用してください!
sem_wait
を使用してスレッドをセマフォでブロックしてください。スレッドをスリープ解除するには、別のスレッドのsem_post
を使用してセマフォを通知する必要があります。
POSIXは、信号を待つsigsuspend
機能を提供します。 (別の回答に記載されているように、pause
も同様です)
- 1. スレッドが無期限にブロックされました - Haskell - Acid State
- 2. スレッドを作成し、linux eclipseでスリープ機能を使用する方法は?
- 3. Xcodeを無期限に「
- 4. UIスレッドをロックしてdoinbackgroundでASynchTaskをスリープします
- 5. Linuxで最小限の消費電力で連続的に起床してスリープしますか?
- 6. return jsonresultはjqueryポストで無期限に動作します
- 7. プログレスバーは無期限
- 8. Linuxカーネル:ストリーミングDMAマッピングを無期限に開いたままにしても構いませんか?
- 9. Pythonはスリープ中にスレッドを終了します
- 10. Linuxでよくスリープしようとしています
- 11. Javaスレッドlags/longがUbuntu/Jettyでスリープします
- 12. selectは無期限に待機し続けます
- 13. Gem installが無期限にハングアップする
- 14. WPFビジュアルプレビューが無期限にハングアップする
- 15. GOコマンドが無期限にハングアップする
- 16. Timer&TimerTaskとJavaのスレッド+スリープ
- 17. J2MEミッドレットをスレッドなしでスリープさせるには?
- 18. Windowsサービスで定期的にスレッドを最大限まで作成する
- 19. フラスコログイン:ChromeはCookieの有効期限を無視しますか?
- 20. 無期限のアイテムを作成する
- 21. linuxディレクトリのグループ権限を無効にすることはできますか?
- 22. デーモンではないスレッドがロックで無期限に待機しているときのPythonのsys.exitの動作
- 23. 「マシン・スリープ」+のWaitForSingleObject +有限タイムアウト
- 24. posix sem_postはスレッド内のsem initのところでsem_waitをスリープ解除できません。 Linuxの
- 25. ユニットテスト中にgetActivity()メソッドが無期限にブロックされます
- 26. 予期しない無限ループが表示されます
- 27. djangoカレンダーで無期限にイベントを繰り返す
- 28. リアルタイムで無限ループを実行する方法 - Linux?
- 29. アプリケーションサーバーで無限のスレッドを停止する方法
- 30. スリープ状態にあるQThreadをスリープ状態にしますか?
実際にスレッドを使用していますか、シグナルだけですか?スレッドの場合は、他のスレッドとは何ですか? (シグナルとスレッドを混在させる場合は余分な作業が必要ですが、シグナルハンドラでは実行されていないプログラムの部分を意味する「プライマリスレッド」を使用しているのであれば、それは異なっており、答え) – Random832