• ベストアンサー

メッセージキューのスレッド間通信 

linuxは全くの初心者なんですが、仕事でメッセージキューでスレッド間通信をするツールを作成するよう指示を受けたのですが全くわかりません。プロセス間通信をするツールは調べて何とかなったんですが… そもそもスレッド間通信ということがわからず困っていますので、ご教授願います。 簡単ものでいいのでツールについても教えていただけたら幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
  • maku_x
  • ベストアンサー率44% (164/371)
回答No.1

スレッド間通信でも、プロセス間通信で使用する read()、write() を使って実装することは出来ます。 メッセージキューを利用したサンプルは、ここに掲載されていましたが、 ・並列プログラミング - メッセージキュー (1) http://linuxmag.sourceforge.jp/Japanese/March2003/article287.shtml もっともこれは、スレッド間通信特有のものではなく、プロセス間通信で使用するものです。 なお、スレッドは複数存在していても、元は同じプロセスですから、グローバル変数やスタティック変数をそのまま参照することが出来ます。スタティック変数としてキューバッファを定義し、それを扱う関数(メソッド)を実装すれば、スレッド間通信が実現できます。但し、スレッド間で競合が起きないよう、これらの変数にアクセスする場合は、pthread_mutex_lock() や pthread_mutex_unlock() で保護する必要がありますが。

関連するQ&A

専門家に質問してみよう