我自己编写了一个死循环int i=1;while(i){i++;}但是就保持100%一会儿,问一下原因。之后我在while循环里多加一句printf(“%d\n”,i);为什么反而CPU达到100%一会都没有
槽点太多
编译器会根据你的代码进行优化,空循环可能会被直接干掉
如果有操作系统的话,操作系统不会把所有cpu时间给你的进程
print这种io操作会被阻塞,在完成之前操作系统会把你挂起
如果你真想用cpu煎鸡蛋,有几种方法
多创建cpu密集型的进程
在你的代码中关闭时钟中断然后循环,放入操作系统内核,让操作系统执行它(主要是要取得指令权限
直接把操作系统干掉,让你的代码占用所有资源