Recommended way to force a thread context switch?

Lloyd Zusman ljz at asfast.com
Sun Jan 7 00:01:04 CET 2007


Duncan Booth <duncan.booth at invalid.invalid> writes:

> [ ... ]
>
> If the context isn't switching enough for you then try calling 
> sys.setcheckinterval(n) with varying values of n until you find one which 
> is suitable. Calling it with a lower value of n will increase the frequency 
> that you switch thread contexts, although of course it will also increase 
> the overall runtime for your program.

Thank you very much.  The sys.setcheckinterval function is what I need.
It seems that the original writer of the app had set this interval to a
high value in a part of the code that I overlooked until you mentioned
this right now.


> [ ... ]
>
> Why does it matter whether individual threads are being 'starved'? Surely 
> you want them all to complete in any case, so does it matter if they run 
> sequentially or in parallel?

Because some of the threads perform monitoring and notification that
need to occur in a timely fashion.  Since these threads are doing IO,
they switch context appropriately, but once one of the big
number-crunching threads gets control, it starves out the monitoring
threads, which is not a good thing for my app ... or at least it did
so with the original large checkinterval.


-- 
 Lloyd Zusman
 ljz at asfast.com
 God bless you.




More information about the Python-list mailing list