Implement a custom Stream solution capable of having multiple Streams reading different parts of the Stream asynchronously (without blocking).
The only time the Lock will be acquired is if the Stream is being written/modified (or if acquired externally for implementation-specific reasons by the implementing developer's code).
Essentially, each Thread will have its own Caret for reading from within the Stream... so that linear reads/seeks from one Thread will have no bearing on those from another. This eliminates the need for mutually-exclusive Stream access!
Implement a custom Stream solution capable of having multiple Streams reading different parts of the Stream asynchronously (without blocking).
The only time the Lock will be acquired is if the Stream is being written/modified (or if acquired externally for implementation-specific reasons by the implementing developer's code).
Essentially, each Thread will have its own Caret for reading from within the Stream... so that linear reads/seeks from one Thread will have no bearing on those from another. This eliminates the need for mutually-exclusive Stream access!