Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Java Threads: O que há de errado com elas e como resolver?

Java Threads: O que há de errado com elas e como resolver?

Escrever código multi-thread correto e eficiente é extremamente difícil. Fazer isso manualmente com Threads é uma dor de cabeça com diversos bugs em potencial, cenários difíceis de reprodução, etc. Nesta talk mostrarei quais as alternativas que o Java nos traz como uma evolução: Concurrency Utilities, Fork/Join Framework e Parallel Streams.

Felipe Mamud

July 03, 2015
Tweet

More Decks by Felipe Mamud

Other Decks in Programming

Transcript

  1. Java Threads: O que há de errado com elas e

    como resolver? Felipe Mamud @ftmamud
  2. Detalhes Java Threads • Threads preemptivas (context switch); • Prioridades

    - de 1 a 10; • Mapeamento 1:1; • Compartilhamento de estado; • Mensagens - wait() e notify(); • Sincronização (monitores mutuamente exclusivos).
  3. • Primitivas de concorrência não são fáceis de usar corretamente;

    synchronized, volatile, wait() and notify() • Suporte a diferentes tipos de locks; • Falta de construções de alto nível. (Ex. semaphores, thread pools, concurrent data structure, etc.) O que há de errado com elas?
  4. "Finalmente, irmãos, tudo o que for verdadeiro, tudo o que

    for nobre, tudo o que for correto, tudo o que for puro, tudo o que for amável, tudo o que for de boa fama, se houver algo de excelente ou digno de louvor, pensem nessas coisas." (Filipenses 4:8) THANK YOU FTD GROUP, JOIN US!