2013-01-20 52 views
1

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

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) 

这个工作还是我要做的这个错误的方式?

回答

3

你的方法很好。我唯一会改变的是clientqueues a static memberClientThread而不是全局变量。

+0

那么这是一个好消息,我并没有想到疯狂。谢谢你的快速反应! –

0

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