我正在尝试在python中进行简单的聊天,我需要并行运行2个while循环。其中之一是每1秒从内存存储区读取一次消息。第二个方法是等待带有input()的来自用户的新消息,将其存储在blob中,然后等待下一个输入。
我尝试使用异步,线程,多处理,但是我还没有解决问题。无论循环何时运行,它似乎总是卡在其中,并且永远不会到达第二个线程/进程/函数。我在这里或网上找不到的示例都没有帮助。
class MainChat():
def listen_for_messages(self):
while True:
print("listener")
# reading from db and detecting if any new messages have been sent to user
#if new message is detected, print it out
def message_writer(self):
while True:
print("writer")
msg = input()
# parse and send message to db
if __name__ == '__main__':
chat = MainChat()
Process(target=chat.listen_for_messages()).start()
Process(target=chat.message_writer()).start()
最终结果将是运行2个并行进程,以检测其他人是否向我发送了消息以及我是否向他们发送了消息。
答案 0 :(得分:1)
您不小心运行了函数,而没有将其作为参数传递:
Process(target=chat.listen_for_messages()).start()
Process(target=chat.message_writer()).start()
应该是
Process(target=chat.listen_for_messages).start()
Process(target=chat.message_writer).start()
请注意,()
在第二行中已删除。