Threading in python
Aahz
aahz at pythoncraft.com
Tue Dec 13 19:17:21 EST 2005
In article <mailman.2057.1134517248.18701.python-list at python.org>,
Carl J. Van Arsdall <cvanarsdall at mvista.com> wrote:
>
>I have some questions regarding python's threading.
These answers assume you're using CPython; Jython and IronPython have
different answers.
>1. Who schedules which threads run and when? Is this something left up
>to the operating system or does python provide a mechanism for this?
Strictly OS -- Python provides no control.
>2. I've read that python threads don't like to allow other threads to
>run except in certain situations, these would be situations where there
>is sleep or I/O happening, is this true? If so, what are the cases in
>which a python thread would not give up the processor?
There is only a single thread of Python code running at any time.
Calling out to external libraries (e.g. C code) can release the Global
Interpreter Lock. Python's standard I/O routines do this automatically
for you, but you're free to write your own code that does this (e.g.
mxODBC).
>3. Is there a way to which thread is running? I mean something a bit
>more robust than a print statement inside the thread, I want to be able
>to see when a context switch occurs, is this possible? The reason for
>this is I will have threads deadlocked waiting for I/O and I am
>interested to see how often context switching occurs.
You'd have to write some kind of logging. You can use the logging
module.
--
Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/
"Don't listen to schmucks on USENET when making legal decisions. Hire
yourself a competent schmuck." --USENET schmuck (aka Robert Kern)
More information about the Python-list
mailing list