在Java 1.6中使用ProcessBuilder是否存在線程安全的方式來並行地使用來自外部進程的標準輸出?從外部進程併發地使用標準輸出
背景:我需要調用pbzip2將大文件解壓縮到標準輸出,並在文件解壓縮時處理每一行(pbzip2利用多個CPU,與其他實現不同)。
合理的方法是在InputStream中創建一個子線程循環(即標準輸出;難道你不愛的命名?),具體如下:
while((line = reader.readLine()) != null)
{
// do stuff
}
然而,解壓速度很慢,所以我真正需要的是reader.readLine方法靜靜地等待下一行變爲可用,而不是退出。
有沒有很好的方法來做到這一點?
reader.readLine()正是你想要的。你的實現過早退出嗎? – akarnokd 2009-06-22 16:26:57