2011-08-10 17 views
2

我正在Python中开发一个应用程序,该程序需要向数组中的所有线程(线程模块,Python2)发送单向消息,但当前线。我已经尝试过变量,但是这会导致所有线程都响应它而不是发件人。在除发件人之外的所有线程上发送单向邮件

以这种方式发送消息的最佳方式是什么?

回答

2

为什么不让“消息”成为(thread_id, 'message')的元组,然后将其发送给所有线程 - 发送它的线程可以忽略带有自己的thread_id的消息。

+0

但是如何从线程本身获取线程的ID? – RichardG

+0

http://docs.python.org/library/threading.html#threading.Thread.ident,或者将它们作为线程初始化的一部分传递给它们。 – Amber

+0

我有通过初始化发送参数的另一个问题,但我不知道哪些参数正在发送到线程的def。如果我发送args =(“hello”)给初始化程序,并且def有打印出的ap参数,那么TypeErrors表示def需要5个参数而不是1个。 – RichardG

1

这是Queue的用途。给每个线程一个队列,并写入除你自己以外的所有线程。

+0

如果你总是通知除当前所有线程以外的所有线程,那么拥有所有线程迭代的共享事件日志(并忽略它们自己的任何消息)会更有效率。 – Amber

相关问题