无限循环会导致自己的线程滞后吗?

时间:2015-10-24 12:48:26

标签: java multithreading

我正在创建一个从串口读取并写入PipedOutputStream的线程。这样我就可以用扫描仪等从端口读取。我想知道这样的代码是否会降低JVM的速度:

while (serialPort.isOpened()) {
    while (serialPort.getInputBufferBytesCount() > 0) {
        pipedOutputStream.write(serialPort.readBytes());
    }
}

在第一个while循环中运行时,它会在某些事情进入之前非常快速地循环,我是否应该在那里添加一些延迟(例如10ms)因此它不会那么快或者以这种方式进行while循环而不是导致任何明显的滞后?

串口没有我可以读取的任何InputStreams,这就是我必须制作这个帖子的原因。我正在使用https://code.google.com/p/java-simple-serial-connector/作为我的串行接口。

1 个答案:

答案 0 :(得分:1)

查看此处的文档,它可能有助于您开发更好的基于通知的解决方案:https://en.wikibooks.org/wiki/Serial_Programming/Serial_Java#Event_Driven_Serial_Communication