On Thursday, February 21, 2013 2:20:41 AM UTC+8, MRAB wrote: > On 2013-02-20 08:26, Ziliang Chen wrote: > Hi Guys, > I am using the > multiprocessing module. The following code snippet occasionally throws the > "Exception in thread QueueFeederThread (most likely raised during interpreter > shutdown)" exception. > > I searched google for the cause, someone says there > are some issues with the multiprocessing.Queue (need do some sleep at where > the queue is used). > > Could you please shed your light here, what is wrong, > how can I use the multiprocess correctly ? > > Thanks very much ! > > The > python version is 2.6 and on Win7 x64 OS. > > ------------------ > from > multiprocessing import Process,Queue > > def listTest(q): > print q.get() > > > def queueTest(): > q = Queue() > q.put([1,2,3,4,5,6]) > p = > Process(target=listTest,args=(q,)) > p.start() > p.join() > > if > __name__=='__main__': > queueTest() > > Exception in thread QueueFeederThread > (most likely raised during interpreter shutdown): > I think it may be a race > condition. When I tried it, sometimes it failed, sometimes it didn't. It seemed to be better behaved when I put a small sleep at the end to delay the main process exiting.
Thanks, MRAB! Yeah, I saw such kind of workaround after googling. But seriously, why is there a race condition here ? Is there any misuse of queue here ? -- http://mail.python.org/mailman/listinfo/python-list