I have a code snippet taken from another stackoverflow post Python Workers and Queues
from multiprocessing import Process
from Queue import Queue
class Worker(Process):
    def __init__(self, queue):
        super(Worker, self).__init__()
        self.queue= queue
    def run(self):
        print 'Worker started'
        # do some initialization here
        print 'Computing things!'
        for data in iter( self.queue.get, None ):
            print(data)
if __name__ == '__main__':       
    request_queue = Queue()
    for i in range(4):
        Worker( request_queue ).start()
    for data in range(100):
        request_queue.put( data )
    # Sentinel objects to allow clean shutdown: 1 per worker.
    for i in range(4):
        request_queue.put( None ) 
Why does this process hang and not process the queue contents?
 
    