A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação em Java Threads Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores.

Apresentações semelhantes


Apresentação em tema: "Programação em Java Threads Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores."— Transcrição da apresentação:

1 Programação em Java Threads Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores

2 Introdução Threads são sub-procesos no sistema operacional É menos custoso gerenciar threads do que processos As linguagens Java e Ada possuem funcionalidades MULTITHREADING na própria estrutura da linguagem C e C++ necessitam de biblioteca especifica para processamento MULTITHREADING Posix p_thread

3 Aplicabilidade de Threads Threads são muito úteis para paralelismo de pequena escala I/O não blocado Interface com o usuário Construção de servidores Comunicação não bloqueante

4 Thread em Java Em Java, threads são implementadas como uma CLASSE Pacote java.lang.Thread É uma extensão da classe Thread Contrutores: public Thread (String nome_da_thread); public Thread ( ); // o nome sera Thread-# Thread-1, Thread-2,…

5 Exemplo de Thread em Java public class MinhaThread extends Thread { public MinhaThread(String nome) { super(nome); } public void run() { //código do thread }

6 Principais Métodos run() é o método que executa as atividades de uma THREAD. Quando este método finaliza, a THREAD também termina start() método que dispara a execução de uma THREAD. Este método chama o método run( ) antes de terminar sleep(int x) método que coloca a THREAD para dormir por x milisegundos

7 Principais métodos join( ) método que espera o término da THREAD para qual foi enviada a mensagem para ser liberada interrupt( ) método que interrompe a execução de uma THREAD interrupted( ) método que testa se uma THREAD está ou não interrompida

8 Estados de uma Thread

9 Prioridade de uma Thread Em Java, a prioridade é determinada com um inteiro entre 1 e 10 A prioridade padrão é o valor 5 10 é a maior prioridade e 1 é a menor A THREAD herda a prioridade da THREAD que acriou void setPriority(int prioridade); int getPriority( );

10 A interface Runnable Para utilizar multithreads em Java é necessário instanciar um objeto de uma classe que estende a classe básicaThread, certo? Uma vez que Java não possui herança múltipla, como eu posso utilizar um objeto, cuja classe já é derivada, como no caso da ClasseThread? O código abaixo não é possível! public class Filho extends Pai extends Thread { //... }

11 A interface Runnable A solução encontrada em Java foi a utilização de uma interface: Runnable No caso, tem-se de implementar esta interface, que possui o método run() public class Filho extends Pai implements Runnable { public void run() { //... } Cria-se uma thread (Classe Thread), passando para o seu construtor uma referência do objeto que implementa a interface Runnable. Thread t = new Thread(Runnable obj);

12 Exercício 1 Defina umaa classe Contador como uma subclasse de Thread, que imprime números de 0 a 10. Crie a classe TesteContador que deve definir o método main que cria e inicia a execução do thread Contador. Teste o resultado executando a classe TesteContador. Altere as classes Contador e TesteContador de modo que a classe Contador seja definida como uma implementação da interface Runnable. Teste o resultado. Agora altere o método main da classe TesteContador para criar dois ou mais threads Contador e inicialize a execução dos mesmos.

13 Exercício 2 Altere o programa exemplo para Sockets para permitir a conexão de vários clientes em um mesmo servidor Teste a implementação com o seu vizinho.

14 Referências Ver tutorial da Sun em: http://java.sun.com/docs/books/tutorial/essential/thread s


Carregar ppt "Programação em Java Threads Prof. Luiz Antonio Rodrigues Prof. Luiz Antonio Unioeste - Cascavel Jpanel e Diagramadores."

Apresentações semelhantes


Anúncios Google