import multiprocessing as mp import time class MProcess(mp.Process): def __init__(self): super(MProcess, self).__init__(name="testprocess") self.queue = mp.Queue() self.got_it = mp.Event() def run(self): while True: foo = self.queue.get() self.got_it.set() print foo if __name__ == "__main__": proc = MProcess() try: proc.start() proc.queue.put("Test") while not proc.got_it.is_set(): time.sleep(0.05) print proc.queue.empty() # Should be True finally: proc.terminate()