usleep的问题

为什么usleep(10)在线程中等待的时间不是10微秒,而是1900微秒
我想再线程中等待10微秒,并想将这10微秒的控制权交给cpu让其他的线程运行。该如何处理?

看你上一个帖子的回复。

要想真正获得10microsenconds的等待,可以轮询CPU的计数,但是这并不可靠,因为会被抢占,而且CPU被锁定。除非硬件实现。

就算可以做到,内程调用加线程切换也要占掉10微秒的相当一定百分比。考率Cache等其它因素,基本上是得不偿失的。

如果你需要等10微秒,可以空转(nano_spin()).

具体为什么你会看到1900us延时,可以看这里。

http://www.qnx.com/developers/articles/article_834_1.html