Can you access the main loop of the processing (CPU bound) thread? If so you could try using time.sleep() to stop the cpu bound thread for a moment and give others a shot at the interpreter. Also you could (restructuring your project) put the processing in another process via something like os.popen or subprocess (in 2.6/3.0), sockets or pipes for communication, nice the process if necessary. Unix process are cheep, more advice I have read on the subject boils down to multi-process where possible or multi-threading With a quick glance at documentation I could not find a way to set a priority of a thread under python ether.
-- Chris --- On Wed, 3/18/09, [email protected] <[email protected]> wrote: > From: [email protected] <[email protected]> > Subject: [clug-talk] Moving CPU Intensive Thread to lower Priority? > To: [email protected] > Cc: [email protected] > Date: Wednesday, March 18, 2009, 10:25 AM > Hi all, > I have a question this week about thread priority, the > little python > application I am writing is CPU bound (on my crappy old > machine). > > I have split the application into threads (using threading) > which appears > to work OK, but the application is still responding at the > speed of the > slowest thread. > > The app is a video processing/display, I have: > -- > Main Thread: pyGTK display/buttons. > Capture Thread: grab from V4L2 and render onto display. > Process Thread: grab image from Capture thread and process, > processing is > done using a wrapper to C library. > -- > > The video display framerate drops to that of the processing > thread and the > CPU is pegged at 100%. If I disable the processing thread > then the video > is smooth, with the correct framerate and CPU is mostly > idle. > > If I put a large sleep (5s for example) in the processing > thread I get > slow video (whilst processing) and then smooth video > (whilst sleeping), so > I believe that I have done the threading correctly. > > So my questions are: > Is there a way to lower the priority of the 'Process > Thread' so that it > does not run as intensively? > Or, is there a way to increase the rate at which the > 'Process Thread' is > swapped out and thus allowing the other (less intensive) > threads to get > CPU time? > > Cheers, > Simon. > > > _______________________________________________ > clug-talk mailing list > [email protected] > http://clug.ca/mailman/listinfo/clug-talk_clug.ca > Mailing List Guidelines (http://clug.ca/ml_guidelines.php) > **Please remove these lines when replying > _______________________________________________ clug-talk mailing list [email protected] http://clug.ca/mailman/listinfo/clug-talk_clug.ca Mailing List Guidelines (http://clug.ca/ml_guidelines.php) **Please remove these lines when replying

