【问题标题】:Python - Threading - Can I make a list of thread Queues?Python - 线程 - 我可以列出线程队列吗?
【发布时间】:2013-01-03 19:20:28
【问题描述】:

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

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)

这行得通还是我走错了路?

【问题讨论】:

    标签: python multithreading list queue


    【解决方案1】:

    你的方法很好。我唯一要改变的是使clientqueues 成为static memberClientThread 而不是全局变量。

    【讨论】:

    • 嗯,这真是个好消息,毕竟我并没有想疯。感谢您的快速回复!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-10-10
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 2011-01-01
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多