[並行プログラミング]プロセス間通信の間

1.プロセス間通信

ソケット、信号、匿名のパイプ、名前付きパイプなど

2.パイプライン

パイプラインは、あそこのLinux Unixのプロセスによって継承されたとの間の通信機構であり、それは重要な初期Unixの通信メカニズムです。

両当事者が情報を送信するために、共有ファイルを使用して通信するような考え方は、メモリ内の共有ファイルを作成することです。

本実施形態では、一方向データ転送の特性なので、共有ファイル配信、このメッセージを持っているので、「パイプ」と呼ばれます。

 

3.匿名パイプ

概要

親によって作成された子プロセスは親プロセスにファイルを含むいくつかのリソースを、割り当てられます。親プロセスが子プロセスを作成する前に、ファイルが作成されている場合は、ファイルディスクリプタを共有作成した親プロセスの子プロセスが続きます。

つまり、親と子は、このドキュメントを介して通信することができます。

他しか書き込むことができながら、通信当事者の一方のみ、読み取ることができる場合、そのファイルは、パイプメッセージである一方向のみに送信することができます。下図のように:

基本操作

「「」
- >ダクト- os.writeによって> 1.親の子プロセスを
子がパイプ(閉塞)2.親os.read()でデータを送信するのを待ちます
「」
 インポートOS、SYS、時間
 DEF 子供(PW):
    time.sleep( 5。 
    MSG = ' チャイルド処理' 
    os.write(PW、msg.encode())       ファイル記述子が記述されたMSG PW 
DEFの親():
    R&LT、W = os.pipe( )
     IF os.fork()== 0:
        子供処理
        子供(W)
     
        MSG = os.read(R&LT、32)         メインスレッドモニタパイプ、各データが進む
        印刷(MSG)
親()

4.名前付きパイプ

...

 

 

参考:

https://blog.csdn.net/qq_38410730/article/details/81569852

 

おすすめ

転載: www.cnblogs.com/remly/p/11391090.html