若让程序主动放弃CPU应该使用sleep(0);而一般不选usleep(0),当然了具体用哪一个还是要做实验,毕竟最合适的才是最好的。
常常人们选用sleep(0),但是我在LINUX下写多线程程序时发现,若选用sleep(0),CPU的利用率超高,有时达到100%,若调用sleep(0)前写个
printf("线程A放弃CPU");却发现“线程A放弃CPU”不断出现,本应该仅出现一次,这可能与LINUX的调度策略有关。但是当我选用usleep(0)时,CPU的利用率明显降低啦,甚至当将0换成某个数据值时,我线程的处理速度明显提高啦,具体原因不太清楚,正在查找……