title: Using Queues in Multi-Thread Python, Passing the queue to a subfunction as reference
body: <p>I am about to start on an endevour with python. The goal is to multithread different tasks and use queues to communicate between tasks. For the sake of clarity I would like to be able to pass a queue to a sub-function, thus sending information to the queue from there. So something similar like so:</p>
  
  <pre><code>from queue import Queue
  from threading import Thread
  import copy
  
  # Object that signals shutdown
  _sentinel = object()
  
  # increment function
  def increment(i, out_q):
      i += 1
      print(i)
      out_q.put(i)
      return
  
  # A thread that produces data
  def producer(out_q):
      i = 0
      while True:
          # Produce some data
          increment( i , out_q)
  
          if i &gt; 5:
              out_q.put(_sentinel)
              break
  
  # A thread that consumes data
  def consumer(in_q):
      while True:
          # Get some data
          data = in_q.get()
          # Process the data
  
          # Check for termination
          if data is _sentinel:
              in_q.put(_sentinel)
              break
  
  
  # Create the shared queue and launch both threads
  q = Queue()
  t1 = Thread(target=consumer, args=(q,))
  t2 = Thread(target=producer, args=(q,))
  t1.start()
  t2.start()
  
  # Wait for all produced items to be consumed
  q.join()
  </code></pre>
  
  <p>Currently the output is a row of 0's, where I would like it to be the numbers 1 to 6. I have read the difficulty of passing references in python, but would like to clarify if this is just not possible in python or am I looking at this issue wrongly?</p>