Linux - pthread の cond の問題
PHP中文网
PHP中文网 2017-06-30 09:56:48
0
1
890

pthread を学習中に問題が発生しました。よくわかりません。最初にコードを投稿します

リーリー

sleep(1)をコメントアウトすると無限待ちに陥ります。これを追加すると(個人的には、メインスレッドの信号の前に別のスレッドがすでにウェイクアップを待機していることを確認するためだと思います)、通常どおりログ文を2つ出力して終了できます。この現象の原因としては、スレッドが cond_wait によりスリープ状態に陥ったためと考えられますが、スリープ後に cond を通知するだけでスリープ状態から復帰することはできるのでしょうか?ネットで調べてみましたが、具体的に書いた記事は見つかりませんでした。アドバイスをいただければ幸いです。または、cond について、スレッド A が最初に cond_signal を呼び出し、次に B が cond_wait を呼び出したと仮定して、B を起動できるかどうか確認してください。

PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(1)
女神的闺蜜爱上我

pthread_cond_signal() 関数は、指定された条件変数 cond で ブロックされているスレッドの少なくとも 1 つをブロック解除します (cond でブロックされているスレッドが あれば)。死ね

目覚めることはできません。
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート