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

Reply via email to