Pessoal
Estou precisando fazer com que dois threads consumidor e produtor trabalhem juntos, de forma que o produtor não gere muitos dados e o consumidor não consuma todos os dados. alguém tem alguma ideia de como posso fazer ?
Vou detalhar agora, estou lendo um arquivo texto (grande) linha a linha ( e este é o trabalho do produtor) e faço um parser e gravou em outro(s) arquivos (e este é o trabalho do consumidor).
Se o produtor trabalha muito mais rápido que o consumidor, fico com muitas linhas na memória e fico sem memória.
Se o consumidor trabalha muito rápido, fico sem buffer e o consumidor fica roubando tempo de processamento do produtor para não fazer nada.
O que gostária de fazer serial algo mais ou menos assim:
Se buffer > 1000 etão produtor espera buffer ficar < 100;
Se buffer < 50 então consumidor espera buffer > 500 ou produtor.fimDoArquivo();
Alguém tem alguma ideia/ dica ?
Obrigado,
Marcelo Gomes