การใช้ fork เป็นวิธีที่ง่ายที่สุดในการสร้างลูก process.fork () เป็นส่วนหนึ่งของไลบรารี Python มาตรฐานของระบบปฏิบัติการ
ที่นี่เราแก้ปัญหานี้โดยใช้ pipe() ใช้สำหรับส่งข้อมูลจากกระบวนการหนึ่งไปยังอีกท่อหนึ่ง () สำหรับการสื่อสารแบบสองทาง คุณสามารถใช้ไพพ์ได้สองทาง หนึ่งท่อสำหรับแต่ละทิศทางเนื่องจาก pipe() เป็นทิศทางเดียว
อัลกอริทึม
ขั้นตอนที่ 1:file descriptors r, w สำหรับการอ่านและการเขียน ขั้นตอนที่ 2:สร้างกระบวนการโดยใช้ส้อม ขั้นตอนที่ 3:หาก ID กระบวนการเป็น 0 ให้สร้างกระบวนการลูก ขั้นตอนที่ 4:อื่นสร้างกระบวนการหลักก่อน>โค้ดตัวอย่าง
นำเข้า os def parentchild(cwrites):r, w =os.pipe() pid =os.fork() if pid:os.close(w) r =os.fdopen(r) print ("ผู้ปกครองกำลังอ่านอยู่ ") str =r.read() พิมพ์ ( "ผู้ปกครองอ่าน =", str) อื่น:os.close(r) w =os.fdopen (w, 'w') พิมพ์ ("เด็กกำลังเขียน") w.write (cwrites) พิมพ์ ("Child write =",cwrites) w.close () # รหัสไดรเวอร์ cwrites ="โปรแกรม Python" parentchild (cwrites)ผลลัพธ์
Child is writingChild writes =Python ProgramParent is readingParent reads =โปรแกรม Python