1

我有两个 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 进程

4

0 回答 0