Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在除发送方之外的所有线程上使用Python发送单向消息_Python_Multithreading - Fatal编程技术网

在除发送方之外的所有线程上使用Python发送单向消息

在除发送方之外的所有线程上使用Python发送单向消息,python,multithreading,Python,Multithreading,我正在用Python开发一个应用程序,它需要向数组中的所有线程(Python2中的线程模块)发送一条单向消息,当前线程除外。我尝试过变量,但这会导致所有线程都响应它,而不是除了发送方之外的所有线程 以这种方式发送消息的最佳方式是什么?为什么不将“消息”设为(thread\u id,'message')的元组,然后将其发送到所有线程-发送它的线程可以忽略具有自己thread\u id的消息这就是队列的用途。给每个线程一个队列,并写入除您自己以外的所有线程。但是如何从线程本身中获取线程ID,或者将其

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


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

为什么不将“消息”设为
(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')
。如果您总是通知除当前线程之外的每个线程,那么拥有一个所有线程都要遍历的共享事件日志(并且忽略它们自己的任何消息)会更有效。