Groovy Process Management页面提到:
因为某些本机平台仅为标准输入提供有限的缓冲区大小 和输出流,无法及时写入输入流或读取输出 子进程的流可能导致子进程阻塞,甚至死锁
此代码段来自JDK API。特别是哪些平台?
答案 0 :(得分:2)
它也发生在Linux和(我希望)Solaris。
事实上,我会惊讶地发现任何传统的OS平台,它为进程到进程流提供无限缓冲;即UNIX术语中的管道。
答案 1 :(得分:1)
我知道至少在Windows上会发生这种情况。这就是必须在另一个线程中读取子项的stdin和stdout的原因。