Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从管道读取的无限循环线程进入定时线程_Java_Multithreading_Named Pipes - Fatal编程技术网

Java 从管道读取的无限循环线程进入定时线程

Java 从管道读取的无限循环线程进入定时线程,java,multithreading,named-pipes,Java,Multithreading,Named Pipes,我需要一个线程在后台从管道读取数据,但是循环突然停止&当我显示线程状态时,我发现它在等待如何防止它发生这种行为,在线程内运行的代码下面,提前感谢 BufferedReader in = null; while (started) { String xml = ""; // char [] buf=new char[250]; try { in = new BufferedReader(new FileReader(pipeName)); while (!in.re

我需要一个线程在后台从管道读取数据,但是循环突然停止&当我显示线程状态时,我发现它在等待如何防止它发生这种行为,在线程内运行的代码下面,提前感谢

BufferedReader in = null;

while (started) {

  String xml = "";
  // char [] buf=new char[250];
  try {
    in = new BufferedReader(new FileReader(pipeName));
    while (!in.ready()) {
    }

    // in.read(buf,0,buf.length);
    xml = in.readLine();
    // in.close();

  } catch (Exception e) {
    System.out.println("error:" + e.getMessage());

    continue;
  }

  if (xml != null && !xml.equals("")) {

    System.out.println("recieved: " + xml);
  }
}
编辑:
使用@thomas的链接后,程序运行良好,但当我尝试解析pr并对字符串执行一些函数时,读取的数据变得不稳定和不完整

抱歉@thomas的延迟, 当我第一次问这个问题时,我有两个C程序和一个java,
第一个C程序在管道中写入,然后将其断开链接,而另一个程序则多次写入,如果它断开管道的链接,java中的线程将在一段时间后停止,但是如果它没有根据@GregKopff假设的编辑将我们接收和打印的数据断开链接,但是当我将xml解析添加到第二个程序编写的数据时,数据已损坏和丢失,我假设xml解析需要花费太多时间,所以我仅通过添加分隔符来更改发送数据的格式,我知道这不被认为是一个解决方案,但它对我很有效,再次为延迟道歉如果你想要一个版本的请询问,我希望它有帮助

摆脱这个:
while(!in.ready()){}
@GregKopff现在它在更长的时间后停止等待通知模式呢?因此,您的代码中没有无限循环。@Thomas我正在尝试构建某种电路模拟器,它的UI是用java编写的&电路和微控制器模拟器都是用C构建的,因此当我开始模拟代码时,我需要java UI不断地从电路模拟器读取值;这就是为什么我需要无限循环的原因,当然它会变成无限循环stopped@AbdoSalem:啊,好吧,那确实是不一样的。我假设C代码写入到一个文件中,并且您希望在java中实时更新该文件。也许这是一个类似的问题: