掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.27910

pthread_cond_wait及びpthread_cond_signalについて
投稿者---hiro(2006/08/11 16:48:18)


環境:RedhatLinuxEnterprise Version4 gcc

複数(例えば10)のスレッドを生成し、各々のスレッドでpthread_cond_waitでsignalを待ちます。

この状態で、10スレッドに対して、pthread_cond_signalでsignalを送信すると、一部のスレッドのみが起床するという現象となっております。

signalの取りこぼしかと考え、シグナル送信前にsleepを入れたり、シグナル送信の度にsleepを入れたりと試してみましたが、同様でした。

原因等心当たりのある方、対処方法についてご教授頂けないでしょうか?

スレッド生成部ソース
for (i=0; i<LOOP; i++) {
if (pthread_create(&request_thread_id[i], NULL, request_jnl, (void*)i) != 0) {
perror("pthread_create");
exit(1);
}
}

スレッド待ち部ソース
pthread_cond_wait(&cond[req_no], &mutex[req_no]);

スレッド起床部ソース
for (i=0; i<LOOP; i++) {
pthread_cond_signal(&cond[i]);

}





この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:pthread_cond_wait及びpthread_cond_signalについて 27911 breakwind4u 2006/08/11 17:58:05
<子記事> Re:pthread_cond_wait及びpthread_cond_signalについて 27912 too 2006/08/12 09:47:19


No.27911

Re:pthread_cond_wait及びpthread_cond_signalについて
投稿者---breakwind4u(2006/08/11 17:58:05)


pthread_cond_broadcast では?


この投稿にコメントする

削除パスワード

No.27912

Re:pthread_cond_wait及びpthread_cond_signalについて
投稿者---too(2006/08/12 09:47:19)


>複数(例えば10)のスレッドを生成し、各々のスレッドでpthread_cond_waitでsignalを待ちます。

肝心のwaitとsignalのタイミングはどうなってますか?
ありがちなのは、waitする前にsignalを打っちゃってる擦れ違いパターン。


この投稿にコメントする

削除パスワード

No.27913

Re:pthread_cond_wait及びpthread_cond_signalについて
投稿者---hiro(2006/08/12 09:56:02)


>肝心のwaitとsignalのタイミングはどうなってますか?
>ありがちなのは、waitする前にsignalを打っちゃってる擦れ違いパターン。

仰るとおり、waitする前にsignalを送ると何も起こらず終了してしまいますので、waitスレッドを生成してからsignalを送るまでの間10秒ほどのsleepを入れています。

また、pthread_cond_broadcastについては、1つのスレッドも起床しないという不思議な事象にぶつかり、あきらめてしまいました。


この投稿にコメントする

削除パスワード

No.27914

Re:pthread_cond_wait及びpthread_cond_signalについて
投稿者---near(2006/08/12 15:40:52)


ソースから得られる情報が少なすぎるので、もう少し広範囲にわたってソースを添付してはどうでしょうか?


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧