Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Chương trình Python giao tiếp giữa tiến trình cha và con dùng pipe

Dùng fork là cách dễ nhất tạo tiến trình con. fork() thuộc thư viện chuẩn os của Python.

Ở đây, ta giải quyết bằng pipe(). Để truyền thông tin từ tiến trình này sang tiến trình khác dùng pipe(). Đối với giao tiếp hai chiều cần hai pipe, một cho mỗi hướng vì pipe() là đơn hướng.

Thuật toán

 Bước 1: File descriptor r, w cho đọc và ghi. Bước 2: Tạo tiến trình dùng fork. Bước 3: Nếu process id là 0 thì tạo tiến trình con. Bước 4: Ngược lại tạo tiến trình cha. 

Mã ví dụ

 import os def parentchild(cwrites): r, w = os.pipe() pid = os.fork() if pid: os.close(w) r = os.fdopen(r) print ("Tiến trình cha đang đọc") str = r.read() print("Cha đọc =", str) else: os.close(r) w = os.fdopen(w, 'w') print ("Tiến trình con đang ghi") w.write(cwrites) print("Con ghi = ", cwrites) w.close() # Mã điều khiển cwrites = "Python Program" parentchild(cwrites) 

Kết quả

 Tiến trình con đang ghi Con ghi = Python Program Tiến trình cha đang đọc Cha đọc = Python Program