实例:A、B、C三个终端,实现三个终端之间任意通信。要求(消息队列+父子进程) 条件:第一个:通信内容可以编辑 第二个:发送内容前几个字必须为toB,目的该消息有哪个消息接收。 第三个:当任一个进程接收到消息,必须立即显示出来消息的内容---解释:进程A输入完toC:helloipc 后,进程C在终端上显示内容:formA:helloipc
时间: 2024-04-16 12:27:47 浏览: 187
你可以使用消息队列和父子进程来实现三个终端之间的任意通信。下面是一个示例代码,可以满足你的要求:
```python
import os
import sys
import time
from multiprocessing import Process, Queue
def process_A(queue):
while True:
message = input("A: ")
queue.put(message)
def process_B(queue):
while True:
message = queue.get()
if message.startswith("toB"):
print("B:", message[4:])
def process_C(queue):
while True:
message = queue.get()
if message.startswith("toC"):
print("C:", message[4:])
if __name__ == "__main__":
message_queue = Queue()
process_a = Process(target=process_A, args=(message_queue,))
process_b = Process(target=process_B, args=(message_queue,))
process_c = Process(target=process_C, args=(message_queue,))
process_a.start()
process_b.start()
process_c.start()
process_a.join()
process_b.join()
process_c.join()
```
在这个示例中,我们创建了三个进程A、B和C来实现通信。进程A负责接收用户输入,并将消息放入消息队列。进程B和进程C从消息队列中获取消息,并根据消息的前缀判断是发给自己的消息,然后打印出来。
你可以在进程A的终端输入`toB: Hello IPC`,进程B的终端会显示`B: Hello IPC`。同样地,你可以在进程A的终端输入`toC: Hi, C`,进程C的终端会显示`C: Hi, C`。
希望这个示例能帮助到你实现三个终端之间的通信。如果你有任何问题,请随时提问。
阅读全文