簡體   English   中英

如何在Python中的並行進程中運行2個while循環

[英]How to run 2 while loops in parallel processes in Python

我正在嘗試在python中進行簡單的聊天,我需要並行運行2 while循環。 其中之一是每1秒從內存存儲區讀取一次消息。 第二個方法是等待帶有input()的來自用戶的新消息,將其存儲在blob中,然后等待下一個輸入。

我曾嘗試使用asyncio,線程,多處理程序,但尚未解決問題。 無論循環何時運行,它似乎總是卡在其中,並且永遠不會到達第二個線程/進程/函數。 我在此處或在網絡上找到的所有示例均無濟於事。

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個並行進程,這些進程將檢測其他人是否向我發送了消息以及我是否向他們發送了消息。

您不小心運行了函數,而不是將其作為參數傳遞:

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()

請注意()在第二行中已刪除。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM