gpt4 book ai didi

python - python中有内置的跨线程事件吗?

转载 作者:太空狗 更新时间:2023-10-29 20:19:25 25 4
gpt4 key购买 nike

python 中是否有任何内置语法允许我将消息发布到问题中的特定 python 线程?就像 pyQt 中的“排队连接信号”或 Windows 中的::PostMessage() 一样。我需要这个用于程序部分之间的异步通信:有许多线程处理网络事件,它们需要将这些事件发布到单个“逻辑”线程,以安全的单线程方式转换事件。

最佳答案

Queue模块是 python 非常适合您所描述的内容。

您可以设置一个在所有线程之间共享的队列。处理网络事件的线程可以使用 queue.put 将事件发布到队列中。逻辑线程将使用 queue.get 从队列中检索事件。

import Queue
# maxsize of 0 means that we can put an unlimited number of events
# on the queue
q = Queue.Queue(maxsize=0)

def network_thread():
while True:
e = get_network_event()
q.put(e)

def logic_thread():
while True:
# This will wait until there are events to process
e = q.get()
process_event(e)

关于python - python中有内置的跨线程事件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/676485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com