java.lang.Process 阻塞问题
来源:互联网 发布:html5自适应源码 编辑:程序博客网 时间:2024/06/05 20:03
关键字: java
Process 类型对象的 waitFor() 方法的时候当前线程会被阻塞掉,因为InputStream in = Process.getInputStream();或 InputStream err = Process.getErrorStream(); 这2个流中的一个会被阻塞住,所以解决的办法可以是用多线程来解决,可以参看http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps_p.html 。
但还有另一种方法可以尝试,
Java代码
- String[] cmds = {...};//command and arg
- ProcessBuilder builder = new ProcessBuilder(cmds);
- //both read inputstream and errstream
- builder.redirectErrorStream(true);
- Process process = builder.start();
- BufferedReader br = new BufferedReader(new InputStreamReader(process
- .getInputStream()));
- String readLine = br.readLine();
- while (readLine != null) {
- System.out.println(readLine);
- readLine = br.readLine();
- }
- int resultValue = process.waitFor();
builder.redirectErrorStream(true); 和BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream())); 这样使用就可以在一个线程中执行,而保证不被阻塞住。
- java.lang.Process 阻塞问题
- java.lang.Process 阻塞问题
- java.lang.Process 阻塞问题
- java.lang.Process调用程序阻塞问题解决
- java.lang.Process调用程序阻塞问题解决
- java.lang.Process调用程序阻塞问题解决
- java.lang.Process调用程序阻塞问题解决
- 关于Java Process 阻塞的问题
- java处理Process输入流阻塞问题
- java process的waitfor()阻塞问题
- java.lang.Process调用程序阻塞问题解决(刚刚遇到的问题,看有人解决了,转一下:) )
- Java.lang.Process需要注意的问题
- pdf2swf process阻塞问题
- Process阻塞问题
- pdf2swf process阻塞问题
- Process.getInputStream()阻塞问题
- Process阻塞问题
- 深入研究java.lang.Process类&Process的的waitFor()造成的阻塞
- Windows系统默认调试器设置
- cookie
- C语言中可变参数函数的设计
- 随笔
- bbbbbbbbbbbbbbbb
- java.lang.Process 阻塞问题
- 2011~2012,我曾经追过的代码
- adb remount出错
- 最常用的CURL命令大全
- Linux下删除数量比较多的文件报错:-bash: /bin/rm: Argument list too long
- Java继承设计的基本技巧
- 电阻基础知识三
- 关于asmlinkage
- LINUX 下安装软件方法命令方法 个人认为很实用,贴出来大家看