[英]Is thread sleep necessary when reading from a socket stream?
我正在從這樣的套接字輸入流中讀取
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String line;
while((line = in.readLine()) != null){
// do something
Thread.sleep(10); // for example 10ms
}
現在, 輸入流的讀取方法將阻塞,直到有可用數據為止。
在這種情況下, 冷卻線程是個好主意嗎? 10ms之后,它將始終處於阻塞狀態。
請不要告訴我有關非阻塞IO的信息,我知道這一點。
我只是很好奇它是否無論如何都有助於提高性能/ CPU。
不行 沒有理由睡覺。 為什么人為地減慢讀取循環? 讓它以最快的速度讀取數據。
如果要讓其他線程占用CPU時間,則應使用:
Thread.yield();
但是我認為這里沒有必要-讓系統線程調度完成工作-很好。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.