Thread com lock e notify. [RESOLVIDO]

6 respostas
Z

Tudo bem Pessoal?
Procurei bastante mas não tô conseguindo achar algo explicando com exemplos de como usar Thread com lock e Notify alguem poderia me passar um link ou fazer um exemplo simples para esse caso:

Eu tenho um List com os parametros para iniciar um Runnable, então vai ter uma Thread para consumir essa Tarefa (Runnable). O problema é que eu n posso passar pra essa mesma Thread varias Tarefas até ela concluir a 1º Primeira tarefa, ou seja, ficaria assim conclui a 1º tarefa, pega outra tarefa do List e assim até concluir todas as tarefas.

Desde já agradeço a sua atenção.

6 Respostas

J

Pode implementar um semáforo simples, com uma variável booleana na sobrecarga do método run:

public void run(){

    if(unLocked){

     .......
    }

}

Aqui, exemplos mais detalhados.

http://www.java2s.com/Code/Java/Threads/ReadWriteLock.htm

E

De qualquer maneira, se você quer fazer alguma coisa com produtores e consumidores, é melhor você tentar usar o framework de Doug Lea, chamado “fork-join”.

O javadoc:

http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/FJTask.html

O paper:

http://gee.cs.oswego.edu/dl/papers/fj.pdf

O código:

http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/current/concurrent.zip

ViniGodoy

Para que usar um framework externo, se temos o pacote java.util.concurrent, implementado pela mesma pessoa?

http://java.sun.com/j2se/1.5.0/docs/api/java/util/concurrent/package-summary.html

ViniGodoy

ZeroLelouch:
Tudo bem Pessoal?
Procurei bastante mas não tô conseguindo achar algo explicando com exemplos de como usar Thread com lock e Notify alguem poderia me passar um link ou fazer um exemplo simples para esse caso:

Eu tenho um List com os parametros para iniciar um Runnable, então vai ter uma Thread para consumir essa Tarefa (Runnable). O problema é que eu n posso passar pra essa mesma Thread varias Tarefas até ela concluir a 1º Primeira tarefa, ou seja, ficaria assim conclui a 1º tarefa, pega outra tarefa do List e assim até concluir todas as tarefas.

Desde já agradeço a sua atenção.

Se você quer ver exemplos, leia essa série completa:
http://java.sun.com/docs/books/tutorial/essential/concurrency/
http://www.lasdpc.icmc.usp.br/disciplinas/graduacao/sistemas-operacionais-teorica/2008/ProducerConsumer.java/view

ViniGodoy

Movi o tópico para o fórum de Java Avançado. Esse aqui definitivamente não era off-topic.

Z

Esse fórum é 10, tudo que eu pergunto vcs respondem.

Sou novo no fórum e eu não sabia que tinha uma parte para Java Avançado, vou reler de novo as regras do fórum.

MUITO OBRIGADO PESSOAL PELA ATENÇÃO!!!

Criado 5 de outubro de 2009
Ultima resposta 6 de out. de 2009
Respostas 6
Participantes 4