我使用 pthread lib 2.8,操作系统内核是 arm 上的 Linux 2.6.37。sched_get_priority_min(policy)
在我的程序中,线程 A 使用 pthread 接口将调度优先级设置为和之间的中间点sched_get_priority_max(policy)
。
在线程函数循环中:
{
//do my work
pthread_cond_timedwait(..., ... , 15 ms)
}
我发现这个线程消耗大约 3% 的 CPU。如果我将超时更改为 30 毫秒,它会减少到 1.3%。但是,我不能增加超时。有没有办法在不减少超时的情况下减少 CPU 消耗?看来成本是由于线程切换造成的。