【コンカレントプログラミング】プロセス間の通信方式、スレッドプロセス間の通信方式

メモを取っていると、どこで見たのか忘れてしまい、時間があれば勉強します。

テキスト

パイプ(パイプ):パイプは半二重通信方式です。データは一方向にのみ流れることができ、関連するプロセス間でのみ使用できます。プロセスの親族関係は通常、親子プロセスの関係を指します。
名前付きパイプ(namedpipe):名前付きパイプも半二重通信方式ですが、無関係なプロセス間の通信を可能にします。
セマフォ(セモフォア):セマフォは、複数のプロセスによる共有リソースへのアクセスを制御するために使用できるカウンタです。これは、プロセスがリソースにアクセスしているときに他のプロセスが共有リソースにアクセスするのを防ぐためのロックメカニズムとしてよく使用されます。したがって、主にプロセス間および同じプロセス内の異なるスレッド間の同期手段として使用されます。
メッセージキュー(messagequeue):メッセージキューはメッセージのリンクリストであり、カーネルに格納され、メッセージキュー識別子によって識別されます。メッセージキューは、信号送信情報が少ないという欠点を克服し、パイプラインはフォーマットされていないバイトストリームしか伝送できず、バッファサイズが制限されます。
Signal(sinal):Signalは、イベントが発生したことを受信プロセスに通知するために使用される、より複雑な通信方法です。
共有メモリ(共有メモリ):共有メモリは、他のプロセスがアクセスできるメモリのセクションをマップするためのものです。この共有メモリは、1つのプロセスによって作成されますが、複数のプロセスからアクセスできます。共有メモリは最速のIPC方式であり、他のプロセス間通信方式の効率が低いように特別に設計されています。これは、プロセス間の同期と通信を実現するために、シグナル2などの他の通信メカニズムと組み合わせて使用​​されることがよくあります。
ソケット(ソケット):ソケットはプロセス間通信メカニズムでもあり、他の通信メカニズムとは異なり、異なるプロセス間の通信に使用できます。

ロックメカニズム:相互除外ロック、条件変数、読み取り/書き込みロックを含みます。
ミューテックスロックは、データ構造の同時変更を防ぐための排他的な方法を提供します。
読み取り/書き込みロックを使用すると、複数のスレッドが共有データを同時に読み取ることができ、書き込み操作は相互に排他的です。
条件変数は、特定の条件が真になるまでプロセスをアトミックにブロックできます。条件は、ミューテックスロックの保護の下でテストされます。条件変数は常にミューテックスロックで使用されます。while + if + volatile変数
セマフォ:名前のないスレッドセマフォと名前の付いたスレッドセマフォを含む
信号メカニズム(信号):プロセス間の信号処理に似ています

Javaスレッド

同期
待機/
ロック状態の通知
セマフォ
カウントダウン
ラッチサイクリックバリア

スレッド間の通信の目的は主にスレッドの同期であるため、スレッドにはプロセス通信のようなデータ交換のための通信メカニズムがありません。

おすすめ

転載: blog.csdn.net/qq_41489540/article/details/109097284