我正在Python中开发一个应用程序,该程序需要向数组中的所有线程(线程模块,Python2)发送单向消息,但当前线。我已经尝试过变量,但是这会导致所有线程都响应它而不是发件人。在除发件人之外的所有线程上发送单向邮件
以这种方式发送消息的最佳方式是什么?
我正在Python中开发一个应用程序,该程序需要向数组中的所有线程(线程模块,Python2)发送单向消息,但当前线。我已经尝试过变量,但是这会导致所有线程都响应它而不是发件人。在除发件人之外的所有线程上发送单向邮件
以这种方式发送消息的最佳方式是什么?
为什么不让“消息”成为(thread_id, 'message')
的元组,然后将其发送给所有线程 - 发送它的线程可以忽略带有自己的thread_id
的消息。
这是Queue的用途。给每个线程一个队列,并写入除你自己以外的所有线程。
如果你总是通知除当前所有线程以外的所有线程,那么拥有所有线程迭代的共享事件日志(并忽略它们自己的任何消息)会更有效率。 – Amber
但是如何从线程本身获取线程的ID? – RichardG
http://docs.python.org/library/threading.html#threading.Thread.ident,或者将它们作为线程初始化的一部分传递给它们。 – Amber
我有通过初始化发送参数的另一个问题,但我不知道哪些参数正在发送到线程的def。如果我发送args =(“hello”)给初始化程序,并且def有打印出的ap参数,那么TypeErrors表示def需要5个参数而不是1个。 – RichardG