2011-08-10 18 views
2

我正在Python中開發一個應用程序,該程序需要向數組中的所有線程(線程模塊,Python2)發送單向消息,但當前線。我已經嘗試過變量,但是這會導致所有線程都響應它而不是發件人。在除發件人之外的所有線程上發送單向郵件

以這種方式發送消息的最佳方式是什麼?

回答

2

爲什麼不讓「消息」成爲(thread_id, 'message')的元組,然後將其發送給所有線程 - 發送它的線程可以忽略帶有自己的thread_id的消息。

+0

但是如何從線程本身獲取線程的ID? – RichardG

+0

http://docs.python.org/library/threading.html#threading.Thread.ident,或者將它們作爲線程初始化的一部分傳遞給它們。 – Amber

+0

我有通過初始化發送參數的另一個問題,但我不知道哪些參數正在發送到線程的def。如果我發送args =(「hello」)給初始化程序,並且def有打印出的ap參數,那麼TypeErrors表示def需要5個參數而不是1個。 – RichardG

1

這是Queue的用途。給每個線程一個隊列,並寫入除你自己以外的所有線程。

+0

如果你總是通知除當前所有線程以外的所有線程,那麼擁有所有線程迭代的共享事件日誌(並忽略它們自己的任何消息)會更有效率。 – Amber

相關問題