2013-10-30 5 views
0

Java에서 Process 클래스를 사용하여 여러 bash 스크립트 프로세스를 시작합니다.
프로세스가 STDOUT으로 인쇄하는 모든 출력을 청취해야한다면 프로그램을 어떻게 구조화 할 수 있습니까? 솔루션이 CPU에 과도한 스트레스를주지 않아야합니다. 모든 프로세스를 폴링하거나 각 프로세스에 스레드를 사용하고 InputStream을 읽고 프레젠테이션 스레드로 전달해야합니까?Java 내 여러 프로세스에서 읽기

답변

0

Process 클래스는 다음과 같은 방법을 포함 getOutputStream(), getInputStream(), getErrorStream()을, 나는 그것을 할 방법을 알고이 당신이 STDOUT

+0

로 출력을 리디렉션 할 수 있습니다 사용하여 아키텍처에 대한 그 많은 질문을. OutputInputStream를 읽거나 OutputStream을 단일 스레드로 폴링하는 각 프로세스의 스레드. 현재 폴링 방식을 구현했지만 CPU 사용량은 높습니다. –

+0

좋습니다. 수영장을 사용하는 것이 좋습니다. 소비를 줄이기 위해 SDK는 다음을 권장합니다. "* 반환 된 ____ 스트림을 버퍼링하는 것이 좋습니다 *." 또 다른 트릭 - BufferedReader # readLine을 사용해보십시오. 콘솔 출력은 즉시 출력되지 않고 '\ n'기호 바로 다음에 출력됩니다. '\ n'이 없다면 마지막 줄을 지우는 것을 잊지 마라. – Dewfy

관련 문제