我在python中有两个独立的进程: producer 和 consumer 。生产者生成文件,消费者对文件进行一些处理。
为了测试这两个应用程序,我发现自己不断启动两个程序,而生产者有一个延迟功能等,这很痛苦。
在python中实现某种信令机制的最快方法是什么,以便消费者说“GO!” 生产者开始做它做的事情。
这样我就可以让制作人一直在运行。
答案 0 :(得分:2)
一种简单的方法(你没有提到你关心的平台,所以我假设你想要一些跨平台的东西)是一个带有已知端口的UDP套接字。如果消费者只是侦听localhost端口12345,它可以在每次需要等待时阻止System.out.println(...)
调用,并且生产者可以执行sock.recvfrom
通知它。
例如,这里是消费者:
sock.sendto
还有制片人:
#!/usr/bin/env python
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('127.0.0.1', 12345))
while True:
dummy, addr = sock.recvfrom(1024)
# work on files until done
需要考虑的其他事项: