プロが教えるわが家の防犯対策術!

linuxは全くの初心者なんですが、仕事でメッセージキューでスレッド間通信をするツールを作成するよう指示を受けたのですが全くわかりません。プロセス間通信をするツールは調べて何とかなったんですが…

そもそもスレッド間通信ということがわからず困っていますので、ご教授願います。
簡単ものでいいのでツールについても教えていただけたら幸いです。

A 回答 (1件)

スレッド間通信でも、プロセス間通信で使用する read()、write() を使って実装することは出来ます。


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています