Leyendo un archivo por múltiples hilos

Tengo un archivo de 250Mb para leer. Y la aplicación es multiproceso. Si permito que todos los hilos lean el archivo, se produce la falta de memoria. Me salgo del error de memoria.

Para evitarlo. Quiero tener solo una copia de la Cadena (que se lee de la secuencia) en la memoria y quiero que todos los hilos la usen.

while (true) {
    synchronized (buffer) {
        num = is.read(buffer);
            String str = new String(buffer, 0, num);

    }
    sendToPC(str);
}

ásicamente, quiero tener solo una copia de la cadena cuando todos los subprocesos completaron el envío, quiero leer la segunda cadena, et

Respuestas a la pregunta(4)

Su respuesta a la pregunta