SlideShare uma empresa Scribd logo
71 Curso de Java
Threads:
métodos e blocos
sincronizados
(synchronized)
• Sincronização é o ato de coordenar as atividades de
2 ou mais threads
• Sincronização é o ato de coordenar as atividades de
2 ou mais threads
• Motivo: quando 2 ou mais threads precisam acessar
um recurso compartilhado, ou somente 1 thread
pode acessar o recurso por vez
• Sincronização é o ato de coordenar as atividades de
2 ou mais threads
• Motivo: quando 2 ou mais threads precisam acessar
um recurso compartilhado, ou somente 1 thread
pode acessar o recurso por vez
• No java usamos a palavra chave synchronized em
métodos (assinatura) ou em um bloco de código
public class Calculadora {
private int soma;
synchronized int somaArray(int[] nums){
soma = 0;
for (int i=0; i<nums.length; i++){
soma += nums[i];
System.out.println("Executando thread " + Thread.currentThread().getName() +
" somando valor " + nums[i] +
" e a soma total é " + soma);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return soma;
}
}
public class Calculadora {
private int soma;
synchronized int somaArray(int[] nums){
soma = 0;
for (int i=0; i<nums.length; i++){
soma += nums[i];
System.out.println("Executando thread " + Thread.currentThread().getName() +
" somando valor " + nums[i] +
" e a soma total é " + soma);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
return soma;
}
}
public class MinhaThreadSoma implements Runnable{
private String nome;
private int[] nums;
private static Calculadora calc = new Calculadora();
private Thread trhead;
public MinhaThreadSoma(String nome, int[] nums){
this.nome = nome;
this.nums = nums;
trhead = new Thread(this, nome);
trhead.start();
}
@Override
public void run() {
System.out.println(this.nome + " iniciada");
int soma = calc.somaArray(nums);
System.out.println("Resultado para " + nome + " é : " + soma);
System.out.println(this.nome + " terminada");
}
}
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5};
MinhaThreadSoma thread1 = new MinhaThreadSoma("#1", nums);
MinhaThreadSoma thread2 = new MinhaThreadSoma("#2", nums);
}
• Experimente remover a palavra synchronized e veja
a saída do programa
https://github.com/loiane/curso-java-basico
Código Fonte:
Não conhece Git/Github?
http://www.loiane.com/2013/11/
screencast-git-e-github-para-iniciantes
http://loiane.training
Fórum para dúvidas + certificado do curso.
Cadastro em:
Obrigada!
http://loiane.com
facebook.com/loianegroner
twitter.com/loiane
https://github.com/loiane
youtube.com/loianegroner
http://loiane.training

Mais conteúdo relacionado

PDF
[Curso Java Basico] Aula 74: Threads: deadlocks
PDF
[Curso Java Basico] Aula 68: Threads: Interface Runnable
PDF
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
PDF
Threads 01: Criação e controle de threads
PDF
Curso de Java: Threads
PDF
Threads 05: Travas de Exclusão Mútua
PDF
Threads 10: CompletableFuture
PDF
Threads 08: Executores e Futures
[Curso Java Basico] Aula 74: Threads: deadlocks
[Curso Java Basico] Aula 68: Threads: Interface Runnable
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Threads 01: Criação e controle de threads
Curso de Java: Threads
Threads 05: Travas de Exclusão Mútua
Threads 10: CompletableFuture
Threads 08: Executores e Futures

Mais procurados (20)

PDF
Threads 04 Variáveis atômicas
PDF
Threads 02: Acesso exclusivo e comunicação entre threads
PDF
Threads 03: Ciclo de vida, aplicações e boas práticas
PDF
Threads 06: Coleções concorrentes
PDF
[Curso Java Basico - Exceptions] Aula 48: multiplos catch
PDF
Threads 09: Paralelismo
PDF
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
PDF
Apresentação de Ruby com Watir webdriver
PDF
Threads 07: Sincronizadores
PDF
Threads e sockets java
PDF
Atualização Java 8 (2014)
PDF
[Curso Java Basico - Exceptions] Aula 47: try, catch
PDF
PDF
[Curso Java Basico] Aula 56: Enum: metodos abstratos
PDF
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
PDF
[Curso Java Basico - Exceptions] Aula 49: finally
PDF
Utilitários para Programação Concorrente em Java (2005)
PPTX
Coroutines tech summit
PDF
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
Threads 04 Variáveis atômicas
Threads 02: Acesso exclusivo e comunicação entre threads
Threads 03: Ciclo de vida, aplicações e boas práticas
Threads 06: Coleções concorrentes
[Curso Java Basico - Exceptions] Aula 48: multiplos catch
Threads 09: Paralelismo
Estrutura de Dados e Algoritmos com Java #02-12: Vetores e Arrays
Apresentação de Ruby com Watir webdriver
Threads 07: Sincronizadores
Threads e sockets java
Atualização Java 8 (2014)
[Curso Java Basico - Exceptions] Aula 47: try, catch
[Curso Java Basico] Aula 56: Enum: metodos abstratos
[Curso Java Basico - Exceptions] Aula 50: stacktrace e throws
[Curso Java Basico - Exceptions] Aula 49: finally
Utilitários para Programação Concorrente em Java (2005)
Coroutines tech summit
[Curso Java Basico] Aulas 75-84: Strings e StringBuilder
Anúncio

Destaque (20)

PDF
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
PDF
[Curso Java Basico] Aula 17: Loop for
PDF
[Curso Java Basico] Aula 63: printf
PDF
[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...
PDF
[Curso Java Basico - Orientacao a Objetos] Aula 36: Relacionamento tem um
PDF
[Curso Java Basico - Orientacao a Objetos] Aula 45: Interfaces e Polimorfismo
PDF
[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...
PDF
[Curso Java Basico] Aula 65: Annotations (anotacoes)
PDF
[Curso Java Basico] Aula 57: Wrappers: classes de tipos primitivos
PDF
[Curso Java Basico] Aula 62: Varargs
PDF
[Curso Java Basico - Orientacao a Objetos] Aula 28: Pacotes (packages) e import
PDF
[Curso Java Basico - Orientacao a Objetos] Aula 33: Sobrecarga de metodos e c...
PDF
[Curso Java Basico] Aula 58: Autoboxing e Unboxing
PDF
[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...
PDF
[Curso Java Basico - Orientacao a Objetos] Aula 25: Classes e metodos simples
PDF
[Curso Java Basico] Aula 59: Importacao estatica (static import)
PDF
[Curso Java Basico] Aula 54: Enumeradores como classe (construtor e metodos)
PDF
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
PDF
Curso Java Basico] Aula 66: Garbage Collector (Coletor de Lixo)
PDF
[Curso Java Basico] Aula 70: Threads: Definindo prioridades
[Curso Java Basico - Orientacao a Objetos] Aula 34: Variáveis e metodos estat...
[Curso Java Basico] Aula 17: Loop for
[Curso Java Basico] Aula 63: printf
[Curso Java Basico - Orientacao a Objetos] Aula 26: Classes e metodos com ret...
[Curso Java Basico - Orientacao a Objetos] Aula 36: Relacionamento tem um
[Curso Java Basico - Orientacao a Objetos] Aula 45: Interfaces e Polimorfismo
[Curso Java Basico - Orientacao a Objetos] Aula 27: Classes e metodos com par...
[Curso Java Basico] Aula 65: Annotations (anotacoes)
[Curso Java Basico] Aula 57: Wrappers: classes de tipos primitivos
[Curso Java Basico] Aula 62: Varargs
[Curso Java Basico - Orientacao a Objetos] Aula 28: Pacotes (packages) e import
[Curso Java Basico - Orientacao a Objetos] Aula 33: Sobrecarga de metodos e c...
[Curso Java Basico] Aula 58: Autoboxing e Unboxing
[Curso Java Basico - Orientacao a Objetos] Aula 39: Heranca: modificadores de...
[Curso Java Basico - Orientacao a Objetos] Aula 25: Classes e metodos simples
[Curso Java Basico] Aula 59: Importacao estatica (static import)
[Curso Java Basico] Aula 54: Enumeradores como classe (construtor e metodos)
[Curso Java Basico - Exceptions] Aula 52: criando sua propria exception
Curso Java Basico] Aula 66: Garbage Collector (Coletor de Lixo)
[Curso Java Basico] Aula 70: Threads: Definindo prioridades
Anúncio

Semelhante a [Curso Java Basico] Aula 71: Threads: metodos e blocos sincronizados (synchronized) (13)

PDF
05 - Sincronização de Threads - I
PPTX
Curso de Java 9 - (Threads) Multitarefas.pptx
PDF
Programação Concorrente - Gerenciamento de Threads - Parte I
PDF
Threads em java
PDF
PPT
Thread Java
PDF
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll
PPTX
Programação Concorrente - Aula 04
PDF
Funcamentos de Programação Concorrente
PDF
threads e-sockets-em-java
PDF
[Curso Java Basico] Aula 73: Threads: resume, suspend e stop
PDF
Java memory model primary ref. - faq
05 - Sincronização de Threads - I
Curso de Java 9 - (Threads) Multitarefas.pptx
Programação Concorrente - Gerenciamento de Threads - Parte I
Threads em java
Thread Java
[Curso Java Basico] Aula 72: Threads: notify, wait e notifyAll
Programação Concorrente - Aula 04
Funcamentos de Programação Concorrente
threads e-sockets-em-java
[Curso Java Basico] Aula 73: Threads: resume, suspend e stop
Java memory model primary ref. - faq

Último (11)

PPT
Conceitos básicos de Redes Neurais Artificiais
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Utilizando code blockes por andre backes
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PDF
Jira Software projetos completos com scrum
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Eng. Software - pontos essenciais para o início
Conceitos básicos de Redes Neurais Artificiais
Viasol Energia Solar -Soluções para geração e economia de energia
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Manejo integrado de pragas na cultura do algodão
Utilizando code blockes por andre backes
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Jira Software projetos completos com scrum
Tipos de servidor em redes de computador.pptx
Eng. Software - pontos essenciais para o início

[Curso Java Basico] Aula 71: Threads: metodos e blocos sincronizados (synchronized)