• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:試験日間近での悪足掻きなのかも知れませんが、…。)

同一タスクのプロセス・スレッド間の連携方法

このQ&Aのポイント
  • 試験日間近での悪足掻きなのかも知れませんが、同じタスクをプロセス・スレッドへと分割して、非同期でCPU利用の権利を提供していましょうとも、もし同じタスクに属しているプロセス同士の繋がりが明らかになりませんでしたら、其の場合には、当該プログラムが正常に機能し難くなるのだろう、と私には思われますから、畏れ入りますが、教えて下さい。
  • 同一タスクの各プロセス・スレッドがCPUでの演算結果を連携させるためには、メッセージキューにPIDが盛り込まれているのでしょうか?
  • 同一タスクのプロセス・スレッド間の連携方法は、試験日間近での悪足掻きなのかもしれませんが、同じタスクをプロセス・スレッドへと分割し、非同期でCPU利用の権利を提供しても、もし同じタスクに属しているプロセス同士の繋がりが明らかにならなければ、当該プログラムが正常に機能しづらくなる可能性があるため、教えてください。

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

  • ベストアンサー
  • hymat
  • ベストアンサー率58% (95/162)
回答No.1

メッセージキューはプロセス間通信の一種であり、メッセージキューはプロセスやスレッドの外(OSの直轄)なので、マルチタスク、マルチスレッドでの順序制御に利用することができます。どのプロセスが発行したメッセージなのかを識別するためにPIDを用いることができます。 PIDは起動された個々のプロセスに割り振られるものなので、どの処理がどのPIDで起動されているかがわかれば、データが適切なプロセスから送られたかどうかを識別できます。 一般的には、マルチスレッドのプログラミングでは、処理の同期にクリティカルセクションを用います。マルチコアのCPUでは、スレッドをどのコアに割り当てるか、という別のプログラミングもあります。その他、データベースの排他制御を利用する方法もありますし、通信ソケットを介してサーバー側で着信順に処理させても良いでしょう。 このような配慮をしないで複数の処理を同時並行に動作させると、タスク間、スレッド間で前後関係が保証されないので、処理結果が予測不能になります。

SakuraiMisato
質問者

補足

非常に分かりやすい説明を提供して下さいまして、 誠に有り難う御座います。 私の知識が不足してい乍らも 近隣に当該情報に詳しい人がいませんので、 参考書の読解さえもが行き詰まりやすくて、 非常に困っております。 従いまして、畏れ入りますが、 下記のページでも御教授を賜われますと、幸甚に存じます。 http://okwave.jp/qa/q7736388.html