Empilhamento de Thread

0 respostas
cleber.malaquias
Pessoal, eu gostaria da opnião de voces quanto a essas classes... obrigado. -------------------------------------- Usando o InvokeQueueStack Problemas que podem surgir: [list]Como fazer uma pilha FIFO de Thread?[/list] [list]Como garantir a ordem de execução de uma Thread? (Que é impossivel prever qual Thread irá entrar primeiro! Inclusive se competir por monitor "syncronized") [/list] [list]Como fazer um "Insert" em um banco de dados, usar a informação e depois garantir um "Delete"? [/list] [list]Tenho um HashMap com N registros e preciso dividir em multiplos de 10 uma execução.[/list] Em fim, qualquer coisa que seja preciso rodar em "background" em fila.
InvokeQueueStack exemplo = new InvokeQueueStack();
Ao criar uma instancia uma Thread será executada com o nome, por exemplo, "InvokeQueueStack-5" Para adicionar na fila qualquer Runnable é usar o metodo:
exemplo.add(runa);
ou
exemplo.add(new Runnable(){
    public void run() {

        // Codigo

    }

});
Ao terminar a Thread vai virar esperando por uma tarefa para sempre.... amenos que você use o metodo: exemplo.stopQueue(); Este metodo irá executar a fila restante de Thread e matar a Thread executado, por exemplo, "InvokeQueueStack-5" Usando o InvokeDAO Problemas: [list]Como internalizar um objeto em uma Thread? [/list] [list]Como criar uma Thread passando um parâmetro? [/list] [list]O Metodo "Runnable" e o "Thread" não aceitam nenhum parametro amenos que você crie variáveis "private" da "classe interna"[/list] Exemplo:
InvokeDAO<String> th = new InvokeDAO<String>(){

    public void run() {

        System.out.println(this.obj);

    }

};
th.obj="Internalizando um objeto";
invoke.add(th);

Usando o Invoke

Problemas:

[list]Seu projeto precisa apenas de uma UNICA pilha.[/list]
[list]Perda de controle sobre as pilhas usadas que nunca morrem.[/list]
Esta classe é apenas uma "fachada" ou se preferir um "controller".... para o uso de apenas uma unica pilha. Por ser um "singleton" é a sua garantia que existirá apenas uma unica pilha "InvokeQueueStack-5" rodando em seu sistema.

Criado 30 de abril de 2008
Respostas 0
Participantes 1