在除发送方之外的所有线程上使用Python发送单向消息
我正在用Python开发一个应用程序,它需要向数组中的所有线程(Python2中的线程模块)发送一条单向消息,当前线程除外。我尝试过变量,但这会导致所有线程都响应它,而不是除了发送方之外的所有线程在除发送方之外的所有线程上使用Python发送单向消息,python,multithreading,Python,Multithreading,我正在用Python开发一个应用程序,它需要向数组中的所有线程(Python2中的线程模块)发送一条单向消息,当前线程除外。我尝试过变量,但这会导致所有线程都响应它,而不是除了发送方之外的所有线程 以这种方式发送消息的最佳方式是什么?为什么不将“消息”设为(thread\u id,'message')的元组,然后将其发送到所有线程-发送它的线程可以忽略具有自己thread\u id的消息这就是队列的用途。给每个线程一个队列,并写入除您自己以外的所有线程。但是如何从线程本身中获取线程ID,或者将其
以这种方式发送消息的最佳方式是什么?为什么不将“消息”设为
(thread\u id,'message')
的元组,然后将其发送到所有线程-发送它的线程可以忽略具有自己thread\u id
的消息这就是队列的用途。给每个线程一个队列,并写入除您自己以外的所有线程。但是如何从线程本身中获取线程ID,或者将其作为线程初始化的一部分传递。不过,我在初始化过程中发送参数方面遇到了另一个问题,我不知道哪些参数正在发送到线程的def。如果我将args=(“hello”)发送给初始值设定项,并且def打印了一个p参数,那么def将使用5个参数而不是1个参数。这是因为您需要编写args=(“hello”,)
(注意逗号)-否则,它将作为args=(“hello”)
发送,这相当于args=“hello”
,它被解释为一个序列args=('h','e','l','l','o')
。如果您总是通知除当前线程之外的每个线程,那么拥有一个所有线程都要遍历的共享事件日志(并且忽略它们自己的任何消息)会更有效。