Lendo um arquivo por vários threads
Eu tenho um arquivo de 250Mb para ser lido. E o aplicativo é multiencadeado. Se eu permitir que todos os threads leiam o arquivo, ocorre a falta de memória. Fico com erro de memória.
Para evitá-lo. Eu quero ter apenas uma cópia da String (que é lida a partir do fluxo) na memória e quero que todos os threads o usem.
while (true) {
synchronized (buffer) {
num = is.read(buffer);
String str = new String(buffer, 0, num);
}
sendToPC(str);
}
Basicamente, eu quero ter apenas uma cópia da string quando todo o thread terminar de enviar, quero ler a segunda string e assim por diante.