On Sep 1, 2011, at 11:57 PM, Henri Heinonen wrote: > 2011/9/1 Jonathan Lundell <[email protected]> > If it's convenient, you might experiment with calling time.sleep(0) fairly > frequently in your CPU-bound simulation app, perhaps in some inner loop, to > yield to other threads. > > I tried time.sleep(0), but it didn't have any effect. > > I tried time.sleep(0.1), but it made the simulation very slow and it didn't > have any effect on welcome application, which didn't respond at all during > the simulation. > > Another (or supplementary) approach is to serialize your simulations, which > might take some refactoring. The idea here is to have a single thread that > runs the simulations from a queue, one at a time, so only one simulation > thread is contending for CPU resources. > > Sounds complicated. > > Or push the simulations into another process altogether, and use the OS's > process priority mechanisms. > > Ok. Maybe I'll give this a try.
Is it possible that you're running into some locked-resource conflict? A database, perhaps? I ask because if the sleep(0.1) significantly slowed the simulation and didn't help the interactive app, it suggests that there's a problem other than sheer CPU usage.

