---------------------------------------- > Date: Mon, 20 May 2013 17:45:14 +1000 > From: c...@zip.com.au > To: fabiosantos...@gmail.com > Subject: Re: Please help with Threading > CC: python-list@python.org; wlfr...@ix.netcom.com > > On 20May2013 07:25, Fábio Santos <fabiosantos...@gmail.com> wrote: > | On 18 May 2013 20:33, "Dennis Lee Bieber" <wlfr...@ix.netcom.com> wrote: > |> Python threads work fine if the threads either rely on intelligent > |> DLLs for number crunching (instead of doing nested Python loops to > |> process a numeric array you pass it to something like NumPy which > |> releases the GIL while crunching a copy of the array) or they do lots of > |> I/O and have to wait for I/O devices (while one thread is waiting for > |> the write/read operation to complete, another thread can do some number > |> crunching). > | > | Has nobody thought of a context manager to allow a part of your code to > | free up the GIL? I think the GIL is not inherently bad, but if it poses a > | problem at times, there should be a way to get it out of your... Way. > > The GIL makes individual python operations thread safe by never > running two at once. This makes the implementation of the operations > simpler, faster and safer. It is probably totally infeasible to > write meaningful python code inside your suggested context > manager that didn't rely on the GIL; if the GIL were not held the > code would be unsafe.
I just got my hands dirty trying to synchronize Python prints from many threads. Sometimes they mess up when printing the newlines. I tried several approaches using threading.Lock and Condition. None of them worked perfectly and all of them made the code sluggish. Is there a 100% sure method to make print thread safe? Can it be fast??? > It is easy for a C extension to release the GIL, and then to do > meaningful work until it needs to return to python land. Most C > extensions will do that around non-trivial sections, and anything > that may stall in the OS. > > So your use case for the context manager doesn't fit well. > -- > Cameron Simpson <c...@zip.com.au> > > Gentle suggestions being those which are written on rocks of less than 5lbs. > - Tracy Nelson in comp.lang.c > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list