【问题标题】:Send one-way message to all threads in Python向 Python 中的所有线程发送单向消息
【发布时间】:2011-05-30 17:09:44
【问题描述】:

我需要向程序中运行的每个线程发送信息,并且每个线程都必须处理该信息。

我不能使用常规队列来做到这一点,因为这样一旦一个线程从队列中删除数据,所有其他线程将无法再看到它。

实现这一目标的最佳方法是什么?

【问题讨论】:

  • 你知道有多少个线程吗?只需设置一个静态变量并让他们都检查该静态变量但不要修改它。如果您不知道有多少线程,则无法知道所有线程何时消耗了数据。

标签: python multithreading events queue


【解决方案1】:

一种方法是为每个线程建立一个队列,广播信息的函数负责将消息插入到每个线程的队列中。

例如,这类似于消息队列在 Windows 中的工作方式。每个执行 GUI 操作的线程都有一个关联的消息队列,独立于任何其他线程。

【讨论】:

  • 啊,好吧,我想也许这种类型的队列已经存在,但我会这样尝试。为每个线程创建一个队列并将它们存储在一个数组中似乎可行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-29
相关资源
最近更新 更多