[英]Java: alternative to sleep in loop?
I need to listen to a serial input continuously, but NetBeans warns "Invoking Thread.sleep in loop can cause performance problems." 我需要连续监听串行输入,但是NetBeans警告说:“在循环中调用Thread.sleep可能会导致性能问题。” I understand why this causes performance problems, but what is the best alternative in Java? 我理解为什么这会导致性能问题,但是Java中最好的替代方法是什么?
public class SerialIO extends javax.swing.JFrame {
...
class RcvTask extends Thread {
public void run() {
try {
SerInputStream sis = new SerInputStream(serialPort);
InputStreamReader isr = new InputStreamReader(sis);
BufferedReader reader = new BufferedReader(isr);
while (true) {
String line = reader.readLine();
parse(line);
sleep(RX_SLEEP);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
...
Why do you need to sleep
? 为什么需要sleep
?
BufferedReader.readLine()
is a blocking operation. BufferedReader.readLine()
是一个阻塞操作。
On the same topic : 在同一主题上:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.