Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
THREADS Fábio Gomes Coqueiro 1 PROCESSOS Para executar um programa, um sistema operacional cria vários processadores virtuais, cada um para executar programa diferente. PROCESSOS Para monitorar esses processadores virtuais, o sistema operacional tem uma tabela de processos. PROCESSOS Segundo TANENBAUM, um processo é definido como um programa que está sendo executado em um dos processadores virtuais do sistema operacional. PROCESSOS Vários processos podem compartilhar concorrentemente CPU e recursos de hardware. Tal compartilhamento deve ser transparente. THREADS Da mesma forma que os processos, um thread executa sua própria porção de código, independente de outros threads. THREADS Diferentemente dos processos, os threads não tem uma grande preocupação com a transparência. Portanto, proteger dados contra o acesso inadequado por threads dentro de um único processo fica inteiramente a cargo dos desenvolvedores da aplicação. THREADS A necessidade de se fazer várias coisas simultaneamente, ao mesmo tempo, paralelamente, aparece frequentemente na computação. Para vários programas distintos, normalmente o próprio sistema operacional gerencia isso através de vários processos em paralelo. THREADS Em um programa só (um processo só), se queremos executar coisas em paralelo, normalmente falamos de Threads. THREADS Em um programa em Java podemos querer executar 2 ou mais threads ao mesmo tempo, ou seja, 2 ou mais procedimentos internos do programa ao mesmo tempo. THREADS Uma Thread é similar à um programa com início, sequência de execução e fim em qualquer momento de sua execução. Porém a Thread não é um programa, já que não pode ser executada sozinha. Ela deve ser executada dentro de uma aplicação, e esta aplicação possuirá vários pontos de execuções, cada um representando uma Thread. THREADS Uma Thread em Java é composta de três partes: 1. CPU ( processamento compartilhado para executar rotinas ) 2. Código ( linhas de código de uma rotina que serão executadas ) 3. Dados ( área de dados que fazem parte da execução da rotina ) THREADS Podemos criar uma Thread em Java de duas maneiras: Estendendo o comportamento da classe Thread 2. Implementando a interface Runnable THREADS Métodos importantes da classe Thread run() - é o código que a thread executará. start() - sinaliza à JVM que a thread pode ser executada, mas saiba que essa execução não é garantida quando esse método é chamado, e isso pode depender da JVM. isAlive() - volta true se a thread está sendo executada e ainda não terminou. sleep() - suspende a execução da thread por um tempo determinado; yield() - torna o estado de uma thread executável para que thread com prioridades equivalentes possam ser processadas, isso será estudando mais adiante; currentThread() - é um método estático da classe Thread que volta qual a thread que está sendo executada. getName() - volta o nome da Thread, você pode especificar o nome de uma Thread com o método setName() ou na construção da mesma, pois existe os construtores sobrecarregados. Suspendendo uma thread try { sleep(5*60*1000); } catch (InterruptedException ex) { } Hierarquia de thread Você poderá ligar uma thread à outra, usando o método join(). Desafio Implementar um simulador em que um prédio tenha três elevadores que funcionam independentes.
Compartilhar