Bir işlemin çıktı ve hata akışlarından okumak ve bunları bir metin akışıyla birleştirmek istiyorum. Benim program harika olduğunu ve böyle okur:İş parçacığı güvenli ByteArrayOutputStream nedir?
def mergeStream = new ByteArrayOutputStream()
process.waitForProcessOutput(mergeStream, mergeStream)
sorun ByteArrayOutputStream güvenli ve waitForProcessOutput iplik olmamasıdır() mergeStream eklenecek iki konuları oluşturur. Kullanabileceğim bir iş parçacığı var mı var? MergeStream'e erişimi kontrol etmeyi başka nasıl önerirsiniz? Pratikte, karakterlerin bazen bu uygulama ile düştüğü görülmektedir. process.waitForProcessOutput()
argüman olarak bir OutputStream
alırsa
ProcessBuilder'ın redirectErrorStream'ını düşündünüz mü? – artbristol
Evet, * iş parçacığı güvenlidir veya tüm yöntemleri senkronize edilir ve 'ProcessBuilder.redirectErrorStream()' sorunuzu gereksiz kılar. Gerçek bir soru değil. – EJP
@EJP - cevabı biliyorsanız, sadece "gerçek bir soru" değil - aksi halde, BÜYÜK bir soru! Javadoc, senkronize edilmesine dair hiçbir şey söylemiyor - AFAICT, bunu bulmak için kaynağında kazmanız gerekiyor ve asla rahatsız etmem (hiçbir şey söylemediğinden, dokümanlar bir şey söylemediğinden) hiç yorum yapmamış olsaydınız. –