Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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_List_Queue - Fatal编程技术网

Python-线程-我可以列出线程队列吗?

Python-线程-我可以列出线程队列吗?,python,multithreading,list,queue,Python,Multithreading,List,Queue,我正在制作一个线程聊天服务器,我需要一种方法来向所有客户端发送消息。我可以使用一个全局队列,但是只有一个处理客户机的线程能够发送消息。所以我想知道是否有可能在每个客户机线程中创建一个单独的队列对象,并将它们附加到一个列表中,以便能够将消息发送到每个客户机的队列。这可能吗 clientqueues = [] #Global list of client queues class ClientThread(threading.Thread): def __init__(self):

我正在制作一个线程聊天服务器,我需要一种方法来向所有客户端发送消息。我可以使用一个全局队列,但是只有一个处理客户机的线程能够发送消息。所以我想知道是否有可能在每个客户机线程中创建一个单独的队列对象,并将它们附加到一个列表中,以便能够将消息发送到每个客户机的队列。这可能吗

clientqueues = [] #Global list of client queues

class ClientThread(threading.Thread):
    def __init__(self):
        myqueue = Queue.Queue() #Client queue
        clientqueues.append(myqueue)
        ...
def MessageAllClients(message):
    global clientqueues
    for queue in clientqueues:
        queue.put(message)

这行得通吗?还是我做得不对?

你的方法很好。我唯一想做的改变是将
clientqueues
作为
ClientThread
的一部分,而不是一个全局变量。

队列只是一个对象(就像Python中的所有东西一样),所以列一个列表没有问题。

这是个好消息,我一点都不疯狂。感谢您的快速回复!