关于我问题的更多细节:
系统平台为linux(mac),线程任务为非阻塞和循环任务.假设只有一个cpu核心,那么当有两个线程时,线程每次占用多少cpu时间。当线程数增加时,如何改变分配给每个线程的cpu时间。
|------------------ one cpu time of one thread ---------------------|
|-context switch time -|----------- user code running time----------|
|------------A---------|--------------------B------
我要做的是编写一个流程,如下所示:
while(forever)
{
do something;
relinquish current cpu time slice;
}
Linux中是否有一些简单地终止时间片的调用,这样永远的循环就不会占用整个CPU线程?我相信您可以进行另一个系统调用,但这可能会调用不必要的内核/用户CPU工作,我只想说,我已经完成了时间限制和重新安排时间。
这种类型的调用在实时环境中也可能非常好。