簡體   English   中英

從套接字流中讀取時是否需要線程休眠?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM