From: Antoni M. <ant...@gm...> - 2009-09-21 10:15:19
|
Christiaan Fluit pisze: > I think any problems here can be prevented by letting a loop in the main > thread read all bytes from the InputStream and pushing them to a set of > PipedOutputStreams, one for each Extractor. So none of the Extractors > actually runs on the main thread. Would that work? Dunno. The PipedOutputStream has a limited buffer itself. AFAIK it is a textbook implementation of the producer-consumer problem, so if an extractor on the other end stalls, the 'dispatcher' thread will block on a call to write(). It's going to be more complex than I thought. In a general case each individual extractor should be wrapped in some sort of a ThreadedExtractorWrapper, and all of them should work on the same physical data. Antoni Mylka ant...@gm... |