Thread imbalance
Carl J. Van Arsdall
cvanarsdall at mvista.com
Thu Feb 2 15:41:22 EST 2006
Tuvas wrote:
> I have a program running several threads. One of them must be done
> every (Specified time, usually 1 second). The whole point to having a
> thread is do this. However, I've noticed the following. When there is
> another part of the program that is active, this thread slips into
> disuse, ei, it's only ran about once every 4-5 seconds, or perhaps it
> waits for a lul in the computing process. How can I ensure that this
> does not happen? This thread uses little processing power, so it could
> be set to a high priority, if there is a way to do this. Thanks!
>
>
I think that might be difficult using python threads simply based on how
python controls the global interpreter lock.
One suggestion I might have is to have python release the global
interpreter lock more frequently, you can read about the global
interpreter lock here:
http://docs.python.org/api/threads.html
You might also be able to use some timer/condition construct in
combination with this, something like
Thread A:
if watchdogTimer():
conditionVar.aquire()
conditionVar.notify(threadB)
conditionVar.release()
ThreadB:
while(1):
conditionVar.aquire()
conditionVar.wait()
functionToDoSomething()
This is pseudo python of course, if you need to know about these objects
I would suggest consulting the python manual.
-carl
--
Carl J. Van Arsdall
cvanarsdall at mvista.com
Build and Release
MontaVista Software
More information about the Python-list
mailing list