我有两个 python 不相关的子进程,我的等待方法类似于以下内容
def wait(self):
LIMIT = 3
t0 = time.time()
while 1:
message = self.__read_message()
if message != '\x00':
break
if time.time() - t0 > LIMIT:
time.sleep(0.01)
return message
读取消息方法是从 mmap 共享内存中读取消息然后删除消息
def __read_message(self):
with self.__sem2:
msg = self.mem[self.__PTR_READ:self.__PTR_READ + self.__MSG_LEN]
self.mem[self.__PTR_READ:self.__PTR_READ + self.__MSG_LEN] = b"\x00" * self.__MSG_LEN
self.mem.flush()
return self.__message.unpack(msg)
我可以改进它,以免忙着等待吗?如果有帮助,我已经使用 subprocess 模块创建了我的其他 python 进程