Python
 Computer >> コンピューター >  >> プログラミング >> Python

パイプを使用して親プロセスと子プロセスの間で通信するPythonプログラム。


子プロセスを作成する最も簡単な方法はforkを使用することです。fork()はos標準のPythonライブラリの一部です。

ここでは、pipe()を使用してこのタスクを解決します。あるプロセスから別のプロセスに情報を渡すために、pipe()が使用されます。双方向通信の場合、pipe()は単方向であるため、各方向に1つずつ、合計2つのパイプを使用できます。

アルゴリズム

Step 1: file descriptors r, w for reading and writing.
Step 2: Create a process using the fork.
Step 3: if process id is 0 then create a child process.
Step 4: else create parent process.

サンプルコード

import os 
def parentchild(cwrites): 
   r, w = os.pipe() 
   pid = os.fork() 
   if pid: 
      os.close(w) 
      r = os.fdopen(r) 
      print ("Parent is reading") 
      str = r.read() 
      print( "Parent reads =", str) 
   else: 
      os.close(r) 
      w = os.fdopen (w, 'w') 
      print ("Child is writing") 
      w.write(cwrites) 
      print("Child writes = ",cwrites) 
      w.close() 
# Driver code         
cwrites = "Python Program"
parentchild(cwrites) 

出力

Child is writing
Child writes = Python Program
Parent is reading
Parent reads = Python Program

  1. Pythonを使用して親ポインターを使用して、バイナリツリーの最も低い共通の祖先を見つけるプログラム

    二分木と2つの特定のノードxとyが与えられたとします。二分木から2つのノードの最も低い共通の祖先を見つける必要があります。二分木の最も低い共通の祖先は、ノードxとyの両方が子孫である最も低いノードです。特定のノードは、それ自体の子孫になることもできます。ノードを見つけて出力として返す必要があります。 ツリーのノード構造は次のようになります- TreeNode:    data: <integer>    left: <pointer of TreeNode>    right: <pointer of

  2. Pythonを使用して式ツリーを構築および評価するプログラム

    式ツリーのポストオーダートラバーサルが与えられたとします。与えられたポストオーダートラバーサルから式ツリーを構築してから、式を評価する必要があります。式ツリーのルートとツリーの評価値を返します。 したがって、入力が次のような場合 その場合、出力は-7になります。 ツリーの入力として指定された接尾辞の順序は、[1、 2、+、 3、 4、+、*]です。評価すると、式は(1 – 2)*(3 + 4);になります。これは-7に相当します。 これを解決するには、次の手順に従います- 左=0右=1 関数evaluate()を定義します。これが定着します ルートの値が数値の場