我正在读取像这样的套接字输入流
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while((line = in.readLine()) != null){
// do something
Thread.sleep(10); // for example 10ms
}
现在,the read method of an input stream会阻止数据可用。
在这种情况下,冷却线程是个好主意吗?在10ms之后,无论如何都会阻塞。
请不要告诉我有关非阻塞IO的信息,我知道这一点。
我只是好奇它是否有助于性能/ CPU。
答案 0 :(得分:8)
否即可。没有理由睡觉。为什么人为地减慢了读取循环?让它尽可能快地读取数据。
答案 1 :(得分:3)
如果你想让其他线程有一个cpu时间,你应该使用:
Thread.yield();
但是我认为这不是必要的 - 让系统线程调度完成它的工作 - 它非常好。