title: How to simulate broadcast message passing between Thread
body: <p>I'm writing a small concurrent program using Python 3.6. I have a question: 
  my program has a small Thread class (which simulates a thread); 
  this class has within it 3 methods that are executed as sub-threads:</p>
  
  <pre><code>class myThread(Thread):
    def __init__(self, identifier):
      super(myThread, self).__init__() 
  
    def fun1(self):
      # broadcasts messages
  
    def fun2(self):
      # event that occurs when a message arrives
      # do something
  
    def fun3(self):
      # event that occurs when a message arrives
      # do something
  
    def run(self):
      t1 = Thread(target = self.fun1)
      t2 = Thread(target = self.fun2)
      t3 = Thread(target = self.fun3)
      t1.start()
      t2.start()
      t3.start()
  </code></pre>
  
  <p>As you can see, <code>fun1()</code> sends broadcast messages (he sends objects) that the other 2 threads must receive. How can this thing be easily implemented in Python?
  I have seen that the simplest way is to use <code>Queue</code>, but I have some doubts... where should I put this queue? How can a general method use the submitted object without emptying this queue (since the "broadcast" object must be used by the other methods)? How does a method perform its body every time a new object is added to the queue (as if it were an event)?</p>