Mike Meyer wrote:
On Fri, 10 Feb 2012 19:36:52 +0100 "M.-A. Lemburg" <mal@egenix.com> wrote:
In cases where the GIL does cause problems, it's usually better to consider changing the application design and use asynchronous processing with a single threaded design or a multi-process design where each of the processes only uses a low number of threads (20-50 per process).
Just a warning: mixing threads and forks can be hazardous to your sanity. In particular, forking a process that has threads running has behaviors, problems and solutions that vary between Unix variants. Best to make sure you've done all your forks before you create a thread if you want your code to be portable.
Right. Applications using such strategies will usually have long running processes, so it's often better to spawn new processes than to use fork. This also helps if you want to bind processes to cores. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Feb 10 2012)
Python/Zope Consulting and Support ... http://www.egenix.com/ mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/
::: Try our new mxODBC.Connect Python Database Interface for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 http://www.egenix.com/company/contact/