目前在一个进程中周期性地启动一个低优先级的洗涤器任务。有时由于锁争用,这个低优先级任务会干扰其他高优先级任务。我想在进程中的其他线程空闲时(阻塞等待锁定/未运行状态)机会性地运行这种低优先级任务。我知道一旦这样的低优先级任务启动,其他高优先级任务很快就会开始运行,但是如果进程中的其他线程已经很忙,我希望避免运行这样的低优先级任务。
最佳答案
一个简单的方法是跟踪有多少线程正在等待任务,如果至少有 x
个等待线程并且没有运行清理,则运行清理任务t
时间等
关于c - Linux:如何以编程方式检测进程中的空闲线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20308436/