|
|
1
1
对进程之间的stdio是缓冲的(通常是4KB缓冲区)。进程A写入缓冲区并存在。进程B有两个线程;一个等待A的结束,另一个读取A的输出。无法确定哪个线程首先执行。
因此,有可能(甚至可能在有大量输出的情况下)
请注意,冲洗在这里没有帮助,因为它只是确保A 书面的 每件事没有办法“强迫”B以类似的方式读取数据。 因此,您应该记住退出状态,并且只有当您从输入流中读取EOF时,才将流程视为“完全终止”。
编辑
一个解决方案是移动
|
|
|
j.doe · AWS lambda中的执行者服务 8 年前 |
|
|
Hudi Ilfeld · 如何保证多线程的完成? 8 年前 |
|
|
J.Ober · Java调用任务集合(与invokeAll一样) 8 年前 |
|
|
Kid101 · 如何与Executor服务线程通信 8 年前 |