talvez alguém q manja de multithreading possa me ajudar aqui..
Tenho quatro métodos (threads) em minha aplicação que devem trabalhar sincronizados compartilhando um array de 8 elementos como um circular buffer array. Cada método deve trabalhar nos dados só depois que seu antecessor tenha completado sua tarefa, na seguinte ordem:
1.: Ler dados de arquivo e coloca-lo num elemento livre do array;
2.: Ler dado produzido pelo thread 1, alterar e salvar;
3.: Ler dados produzidos por thread 2, alterar e salvar;
4.: Ler dados produzidos por thread 3, escrever para arquivo e liberar elemento do array para que thread 1 possa trabalhar.
É possível (nessa aplicacao) que todos threads acessem e manipulem os dados simultaneamente sem causar monitor overhead?
Qual é o melhor meio de alcançar isto de forma que possam trabalhar juntos mas na ordem correta / sincronizada?
detalhe: a forma q estou tentando resolver esse problema é utilizando Circular Buffer Array, para quem nunca ouviu falar eu tentei dar uma explicacao (seguindo o meu livro) no quinto post deste forum. (esta em ingles)
Pergunta
Thiago Alencar
Ola galera!
talvez alguém q manja de multithreading possa me ajudar aqui..
Tenho quatro métodos (threads) em minha aplicação que devem trabalhar sincronizados compartilhando um array de 8 elementos como um circular buffer array. Cada método deve trabalhar nos dados só depois que seu antecessor tenha completado sua tarefa, na seguinte ordem:
1.: Ler dados de arquivo e coloca-lo num elemento livre do array;
2.: Ler dado produzido pelo thread 1, alterar e salvar;
3.: Ler dados produzidos por thread 2, alterar e salvar;
4.: Ler dados produzidos por thread 3, escrever para arquivo e liberar elemento do array para que thread 1 possa trabalhar.
É possível (nessa aplicacao) que todos threads acessem e manipulem os dados simultaneamente sem causar monitor overhead?
Qual é o melhor meio de alcançar isto de forma que possam trabalhar juntos mas na ordem correta / sincronizada?
detalhe: a forma q estou tentando resolver esse problema é utilizando Circular Buffer Array, para quem nunca ouviu falar eu tentei dar uma explicacao (seguindo o meu livro) no quinto post deste forum. (esta em ingles)
Obrigado.
Editado por Thiago AlencarLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.