CONCORRÊNCIA EM AMBIENTES CORPORATIVOS
Concurrency 1.0:
Thiago Gonzaga @thiago_javaboy
Agenda
2
• Concorrência: Java SE vs. Java EE • Problemas, problemas e mais problemas… • Deep into • Pra onde ir? • Quem usa? • Demo • Case • Referências
Sobre "Eu"
3
• Desenvolvedor Java • Coordenador do Java Noroeste • Organizador do Java Day (SJRP) • Bláh • Bláh • Bláh • Escritor de testes
Concorrência é tudo igual?
R: Conceito sim, aplicação não.
4
Plataforma Java SE
5
JVM
Bibliotecas Base (java.lang.Thread, java.util.concurrent, etc)
Bibliotecas de integração (JDBC, JNDI, RMI, etc)
Interface Gráfica (Swing, AWT)
Java EE
6Plataforma Java SE
Processos, Gerenciamento de threads, controle de tempo de execução
Container EJB
Gerenciamento Lifeclycle
HTTP listeners
Servlets, web services
Servidor HTTP Container Web
Instância do Servidor de Aplicação
Cumé?
Houston, we have a problem!
Problemas
8
• Thread pools gerenciados pelo container. • Utilizar API de concorrência do Java SE no
Java EE sempre foi tido como má pratica. • Threads dentro de EJBs/Servlets • não gerenciáveis. • sem garantia.
• Contexto • JMS e EJBs assíncronos podem ser
complexos
O que fazer?
9
Corra pras colinas e salvem suas vidas!!!!
NÃO!!!!!
10
Solução: Java EE 7 Estamos falando "especificamente" da
especificação JSR-236
Java SE Concurrency Utilities
11
• ExecutorService • ScheduledExecutorService • ThreadFactory
Java EE Concurrency Utilities
12
• ManagedExecutorService • ManagedScheduledExecutorService • ManagedThreadFactory • ContextService
Setup
13
• Configurações pelo AS • Quantidade de Cores • Quantidades de Threads • Fila • etc.
Quem implementa?
Demo
15
Case
16
Solução
24
• Notificador • Cria threads de notificação tanto para
sucessos ou erros. • EJB Singleton • Gera registros de “log” • MongoDB • Utiliza contexto para salvar páginas html
Referências
25
• Meu Blog • www.arquivolivre.com.br
• Oracle • www.oracle.com/technetwork/java/javaee
• JSR 236 - Concurrency Utilities Java EE • jcp.org/en/jsr/detail?id=236
• JSR 166 - Concurrency Utilities Java SE • jcp.org/en/jsr/detail?id=166
Perguntas??????
26
OBRIGADO!Concurrency 1.0: Concorrência em Ambientes Corporativos
Thiago Gonzaga @thiago_javaboy