백그라운드에서 실행되는 몇 개의 스레드가 있습니다. 공통점은 HashMap
입니다. (안전하게) PipedOutputStream
을 저장할 수 있습니까?스레드에 대한 HashMap의 PipedOutputStream
,이 버퍼에 큰 파일에서 읽은 텍스트 데이터를 시작해야합니다
나는이 다음과 같은 시나리오를 가지고있다.
두 번째 백그라운드 스레드 (독립적 임)는 어떻게 든 알리고 그런 다음 버퍼 (파이프)에서 데이터를 읽을 때이를 읽어야합니다.
모든 스레드가 HashMap
에 액세스 할 수 있으므로 모든 스트림을 저장하는 것이 좋습니까?
마지막 주석을 이해하지 못했습니다. 파일에서 한 줄씩 데이터를 읽고 첫 번째 스레드에서 파이프에 쓰고 두 번째 스레드의 파이프에서 프로세스의 도착 데이터를 읽으려고합니다. – kenny
그게 뭘 원하는지 이해하지만, 성능상의 이유로 OS가 당신 앞에서 데이터를 읽고 파일 설명자 버퍼에 추가하면 실망하게 될 것입니다 (파이프가 사용하는 것입니다) 그것은 당신이 읽는 것입니다. 즉, OS가 이미 수행 한 작업을 복제 할 가능성이 큽니다. –
이것은 재미있다, 고마워. 그러나 나는 다른 단계에서 성과를 얻을 것이며, 나는 전체 흐름을 설명하지 않았다. (질문에 중요하지 않기 때문에). "오래된"방법은 처음부터 끝까지 데이터를 읽고 다른 파일에 쓰는 것이고 새 파일 만 처리했습니다. 새로운 방법으로 나는 임시 파일을 건너 뜁니다. – kenny