java
Introdução
Multithreading em Java
Multithreading em Java
Introdução
Thread X Processo
Cada linha de execução é executada em um contexto Contextos fazem parecer que cada linha de execução possui:
CPU
Registradores
Memória
Código
Thread = linha de execução
Múltiplas linhas: ampliam a idéia de multitarefa
Programas individuais parecem realizar várias tarefas ao mesmo tempo
Multithreading em Java
Introdução
Thread X Processo
Cada processo tem um conjunto completo de variáveis próprias
Comunicação entre processos é mais lenta e restritiva Threads compartilham os mesmos dados
Mas possuem registradores próprios
Menos sobrecarga para criar e destruir Threads
próprios
Multithreading em Java
Introdução
Um processo é um fluxo pesado que pode ser executado concorrentemente com outros processos. Uma thread é um fluxo leve que pode ser executado concorrentemente com outras threads no mesmo processo.
Vários fluxos de controle comunicação e sincronização mais complexas do que em sistemas sequenciais.
Multithreading em Java
Introdução
Realização de operações concorrentemente
(em paralelo)
Muitas linguagens de programação não permitem concorrência geralmente limitadas as "primitivas" do sistema operacional disponíveis para os programadores
Java permite concorrência
1
Multithreading em Java
Introdução
Threads - Linhas de execução
Cada linha é uma parte de um programa que pode executar concorrentemente com outras linhas
(multithreading)
Isso dá a Java poderosas capacidades não existentes em linguagens single-threaded
Exemplo: downloading um clip de video
Em vez de ter que baixar o clip inteiro e depois tocá-lo:
Download de uma parte, toca aquela parte, download da próxima parte, toca aquela parte...
Multithreading em Java
Introdução
Portabilidade
Diferenças entre Solaris e Win32 (Windows95, NT, etc.)
No Solaris
Uma thread executa até completar ou até uma thread de