非阻塞 IO 不会交出 CPU,而会一直占用 CPU

非阻塞 IO 不会交出 CPU,而会一直占用 CPU。 有人可以解析一下吗

while(true){
data = socket.read();
if(data!= error){
处理数据
break; }
}

whille(true) 一直占用CPU是为什么? 线程不是都有一定的CPU时间片吗?CPU时间片完了,不得切换线程吗? 为什么说一直不会交出CPU?
求解惑

他的意思是,虽然现在不会等待输入了,但是cpu却一直要运行你这个程序,比如那个while循环,去判断现在是否有 msg