Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Curso Threads 2: Programação concorrente avançada

Nota

9.4

Nível

Avançado

Última atualização

07/11/2017

Carga horária

16h

Iniciar Curso
Concluir

Pré-requisitos:

Carreiras com esse curso:

Instrutor

  • instructor Nico Steppat

    Um alemão radicado no Brasil. Instrutor e desenvolvedor na Caelum, focado no Java, Python e NoSQL. Vibrou bastante com a Alemanha campeã.

Veja as últimas novidades do curso Veja as perguntas frequentes Fórum do curso

Conteúdo detalhado:

  1. O projeto Servidor de tarefas

    1. Socket e TCP/IP
    2. Abrindo Portas
    3. O que é um Socket?
    4. Criando o cliente
    5. Aceitando vários clientes
    6. Cada cliente, uma nova thread
    7. O que aprendemos?
  2. Reuso de threads

    1. Recebendo comandos
    2. Reaproveitando threads
    3. Testando o ExecutorService
    4. O que aprendemos?
  3. Melhorando o cliente

    1. Capturando a entrada
    2. Lendo dados do Servidor
    3. Usando threads no cliente
    4. Juntando as Threads
    5. Confirmando o recebimento de comandos
    6. O que aprendemos?
  4. Volatile

    1. Revisão do servidor
    2. Parando o servidor
    3. Novo comando
    4. Simulando o problema
    5. Entendendo o volatile
    6. Usando variáveis atômicas
    7. O que aprendemos?
  1. Distribuindo comandos e tratamento de erro

    1. Distribuindo comandos
    2. Cada comando, um Runnable
    3. Executando as threads
    4. E se um erro acontece na threads?
    5. Cada thread a sua pilha
    6. Capturando exceções
    7. Usando a fábrica de threads
    8. O que aprendemos?
  2. Comandos do Futuro

    1. A interface Callable
    2. Entendendo o Future
    3. Implementando o Callable
    4. Tarefa para juntar os resultados
    5. O que aprendemos?
  3. Produzindo e Consumindo com Threads

    1. Produtores e Consumidores
    2. Prova de conceito
    3. Trabalhando com java.util.Queue
    4. Fila thread-safe: BlockingQueue
    5. Detalhes da ArrayBlockingQueue
    6. Usando o BlockingQueue no servidor
    7. Consumindo comandos
    8. O que aprendemos?