SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Threads
O que é Thread

●   O principal conceito de Thread está na ideia de executar
    mais de uma tarefa simultaneamente
●   Situação comum quando executamos mais de tarefa:
    Navegamos na internet, digitamos um texto, assistimos um
    video ou escutamos música
●   Quando usamos vários programas diferentes, o sistema
    operacional, os gerencia através de processos diferentes
●   Em um programa (ou processo) só, se quisermos executar
    tarefas em paralelo, normalmente falamos de threads
●   Nas threads, diferentes tarefas compartilham os mesmos
    objetos em memoria, nos processos isso não acontece
Dormindo

●   Podemos fazer uma thread parar momentanteamente de
    executar-se usando o método Thread.sleep
●   Temos de especificar q quantidade de milisegundos que
    uma Thread deve permanecer dormente
    Thread.sleep(5000)
Como chama-las

●   Para chamar uma nova thread (tarefa) dentro de um
    processo será necessario criar um objeto Thread e chamar
    o metodo start()
●   Entretanto mesmo que isso chame uma nova tarefa será
    necessario especificar o que queremos executar nessa
    nova tarefa
●   Especificamos o metodo criando uma outra classe que
    implemente a interface Runnable e passando-a no
    construtor da Thread
●   Ao implementar a interface Runnable, será necessario
    implementar o metodo run
Escalonador

●   Podemos observar que a saida no exemplo proposto não
    necessariamente é a mesma
●   Threads concorrem pelo único processador, como o mesmo
    só pode executar uma thread por vez, entra em cena o
    escalonador
●   O Escalonador é o responsavel por escolher a proxima
    Thread a ser executada e fazer a troca de contexto
●   As threads dormem e são salvas na hora da troca de
    contexto, para depois poderem retomar sua execução no
    ponto que foram interrompidas
●   Não temos controle sobre o escalonador
Garbage Collector

●   É uma Thread responsavel por jogar fora todos os objetos
    não referenciados



●   Ao desalocar um objeto, não se pode afirmar se ele ainda
    está na memoria



●   O que se pode afirmar é que ao ser desalocado, em algum
    momento o GC irá liberar aquele epaço na memória
Problemas de Concorrência

●   Ao trabalhar com Threads, em algumas situações teremos
    uma ou mais Threads tentando acessar/modificar um
    recurso ao mesmo tempo
●   Imagine que duas Threads estejam efetuando uma
    operação em ContaCorrente, uma saca e outra deposita. É
    possivel que uma das operações seja ignorada.
●   Para evitar esse tipo de situação a palavra synchronized é
    utilizada
●   Relembrando collections:
    ArrayList != Vector
    HashMap != Hashtable
Aplicações

●   Processameto paralelo
●   Processamento concorrente
●   Conexão com servidores
●   Map/Reduce
●   Aproveitamento de processadores multicore
Duvidas?

Weitere ähnliche Inhalte

Was ist angesagt?

Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e Semáforos
Thiago Poiani
 
Resolução da atividade pagina 84 a 87 so
Resolução da atividade pagina 84 a 87 soResolução da atividade pagina 84 a 87 so
Resolução da atividade pagina 84 a 87 so
Cristiano Silva
 

Was ist angesagt? (18)

Python oo
Python ooPython oo
Python oo
 
Mutexes, Monitores e Semáforos
Mutexes, Monitores e SemáforosMutexes, Monitores e Semáforos
Mutexes, Monitores e Semáforos
 
Resolução da atividade pagina 84 a 87 so
Resolução da atividade pagina 84 a 87 soResolução da atividade pagina 84 a 87 so
Resolução da atividade pagina 84 a 87 so
 
Mutex
MutexMutex
Mutex
 
Coroutines tech summit
Coroutines  tech summitCoroutines  tech summit
Coroutines tech summit
 
Regiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas OperacionaisRegiões críticas dos Sistemas Operacionais
Regiões críticas dos Sistemas Operacionais
 
Introdução ao Node.js
Introdução ao Node.jsIntrodução ao Node.js
Introdução ao Node.js
 
Java Memory Model (2005)
Java Memory Model (2005)Java Memory Model (2005)
Java Memory Model (2005)
 
Síncrono vs Assíncrono
Síncrono vs AssíncronoSíncrono vs Assíncrono
Síncrono vs Assíncrono
 
Net - Threads
Net - ThreadsNet - Threads
Net - Threads
 
THREADS JAVA
THREADS JAVATHREADS JAVA
THREADS JAVA
 
Apt_vagrant_chef_olavo_queiroz
Apt_vagrant_chef_olavo_queirozApt_vagrant_chef_olavo_queiroz
Apt_vagrant_chef_olavo_queiroz
 
Processos e threads
Processos e threadsProcessos e threads
Processos e threads
 
Gerenciamento de processos Linux
Gerenciamento de processos LinuxGerenciamento de processos Linux
Gerenciamento de processos Linux
 
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-ThreadDelphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
Delphi Conference 2012 - Controlando a Concorrência em Aplicações Multi-Thread
 
Thread Java
Thread JavaThread Java
Thread Java
 
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso códigoRuby 3 e Análise estática - O que esperar e o que significa para o nosso código
Ruby 3 e Análise estática - O que esperar e o que significa para o nosso código
 
Estamos trabalhando melhor com dependências e ambientes usando containers?
Estamos trabalhando melhor  com dependências e ambientes  usando containers?Estamos trabalhando melhor  com dependências e ambientes  usando containers?
Estamos trabalhando melhor com dependências e ambientes usando containers?
 

Andere mochten auch (8)

13 banco-de-dados
13 banco-de-dados13 banco-de-dados
13 banco-de-dados
 
10 io
10 io10 io
10 io
 
11 sockets
11 sockets11 sockets
11 sockets
 
8 collections-i
8 collections-i8 collections-i
8 collections-i
 
9 collections-ii
9 collections-ii9 collections-ii
9 collections-ii
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
 
Apresentacao Aula04 So
Apresentacao Aula04 SoApresentacao Aula04 So
Apresentacao Aula04 So
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
 

Ähnlich wie 12 threads

Java recursos avançados - multithreading
Java   recursos avançados - multithreadingJava   recursos avançados - multithreading
Java recursos avançados - multithreading
Armando Daniel
 
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
rafaelov
 
Sistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação ParalelaSistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação Paralela
Adriano Teixeira de Souza
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
Adriano Teixeira de Souza
 

Ähnlich wie 12 threads (20)

Trabalhando com Threads em JAVA
Trabalhando com Threads em JAVATrabalhando com Threads em JAVA
Trabalhando com Threads em JAVA
 
Threads em java
Threads em javaThreads em java
Threads em java
 
Java recursos avançados - multithreading
Java   recursos avançados - multithreadingJava   recursos avançados - multithreading
Java recursos avançados - multithreading
 
Threads - .Net Framework 4.0
Threads - .Net Framework 4.0Threads - .Net Framework 4.0
Threads - .Net Framework 4.0
 
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
Apresentação do artigo THREADS: O PROBLEMA DOS LEITORES E ESCRITORES IMPLEMEN...
 
Processos e threads cap 02 (i unidade)
Processos e threads   cap 02 (i unidade)Processos e threads   cap 02 (i unidade)
Processos e threads cap 02 (i unidade)
 
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
Artigo Threads O Problema Dos Leitores E Escritores Implementado Em C# Rafael...
 
Javascript por debaixo dos panos
Javascript por debaixo dos panosJavascript por debaixo dos panos
Javascript por debaixo dos panos
 
04 - Gerenciamento de Threads - II
04 -  Gerenciamento de Threads - II04 -  Gerenciamento de Threads - II
04 - Gerenciamento de Threads - II
 
Programação Concorrente - Gerenciamento de Threads - Parte II
Programação Concorrente - Gerenciamento de Threads - Parte IIProgramação Concorrente - Gerenciamento de Threads - Parte II
Programação Concorrente - Gerenciamento de Threads - Parte II
 
Coroutine e concorrência python
Coroutine e concorrência   python Coroutine e concorrência   python
Coroutine e concorrência python
 
Curso de ReactJS
Curso de ReactJSCurso de ReactJS
Curso de ReactJS
 
Threads 01: Criação e controle de threads
Threads 01: Criação e controle de threadsThreads 01: Criação e controle de threads
Threads 01: Criação e controle de threads
 
Sistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação ParalelaSistemas Distribuídos - Computação Paralela
Sistemas Distribuídos - Computação Paralela
 
Sistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - IntroduçãoSistemas Distribuídos - Computação Paralela - Introdução
Sistemas Distribuídos - Computação Paralela - Introdução
 
Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!Paralelismo na prática: Threads de uma vez por todas e sem medo!
Paralelismo na prática: Threads de uma vez por todas e sem medo!
 
OpenMP Day 3
OpenMP Day 3OpenMP Day 3
OpenMP Day 3
 
Threads
ThreadsThreads
Threads
 
Threads 09: Paralelismo
Threads 09: ParalelismoThreads 09: Paralelismo
Threads 09: Paralelismo
 
Sistemas operacionais - aula8
Sistemas operacionais - aula8Sistemas operacionais - aula8
Sistemas operacionais - aula8
 

Mehr von Thiago Oliveira (7)

7 interfaces
7 interfaces7 interfaces
7 interfaces
 
6 excecoes
6 excecoes6 excecoes
6 excecoes
 
5 oo-avançado
5 oo-avançado5 oo-avançado
5 oo-avançado
 
4 arrays
4 arrays4 arrays
4 arrays
 
3 orientacao-objetos
3 orientacao-objetos3 orientacao-objetos
3 orientacao-objetos
 
2 controle-de-fluxo
2 controle-de-fluxo2 controle-de-fluxo
2 controle-de-fluxo
 
1 introdução
1 introdução1 introdução
1 introdução
 

Kürzlich hochgeladen

Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
sh5kpmr7w7
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
Autonoma
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
AntonioVieira539017
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
RogrioGonalves41
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
azulassessoria9
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 

Kürzlich hochgeladen (20)

LENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretaçãoLENDA DA MANDIOCA - leitura e interpretação
LENDA DA MANDIOCA - leitura e interpretação
 
Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024Historia de Portugal - Quarto Ano - 2024
Historia de Portugal - Quarto Ano - 2024
 
Aula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .pptAula 1 - Psicologia Cognitiva, aula .ppt
Aula 1 - Psicologia Cognitiva, aula .ppt
 
Slide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemáticaSlide - SAEB. língua portuguesa e matemática
Slide - SAEB. língua portuguesa e matemática
 
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdfatividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
atividade-de-portugues-paronimos-e-homonimos-4º-e-5º-ano-respostas.pdf
 
QUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geralQUIZ ensino fundamental 8º ano revisão geral
QUIZ ensino fundamental 8º ano revisão geral
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Cartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptxCartão de crédito e fatura do cartão.pptx
Cartão de crédito e fatura do cartão.pptx
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
Artigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.pptArtigo Científico - Estrutura e Formatação.ppt
Artigo Científico - Estrutura e Formatação.ppt
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
O estudo do controle motor nada mais é do que o estudo da natureza do movimen...
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 

12 threads

  • 2. O que é Thread ● O principal conceito de Thread está na ideia de executar mais de uma tarefa simultaneamente ● Situação comum quando executamos mais de tarefa: Navegamos na internet, digitamos um texto, assistimos um video ou escutamos música ● Quando usamos vários programas diferentes, o sistema operacional, os gerencia através de processos diferentes ● Em um programa (ou processo) só, se quisermos executar tarefas em paralelo, normalmente falamos de threads ● Nas threads, diferentes tarefas compartilham os mesmos objetos em memoria, nos processos isso não acontece
  • 3. Dormindo ● Podemos fazer uma thread parar momentanteamente de executar-se usando o método Thread.sleep ● Temos de especificar q quantidade de milisegundos que uma Thread deve permanecer dormente Thread.sleep(5000)
  • 4. Como chama-las ● Para chamar uma nova thread (tarefa) dentro de um processo será necessario criar um objeto Thread e chamar o metodo start() ● Entretanto mesmo que isso chame uma nova tarefa será necessario especificar o que queremos executar nessa nova tarefa ● Especificamos o metodo criando uma outra classe que implemente a interface Runnable e passando-a no construtor da Thread ● Ao implementar a interface Runnable, será necessario implementar o metodo run
  • 5. Escalonador ● Podemos observar que a saida no exemplo proposto não necessariamente é a mesma ● Threads concorrem pelo único processador, como o mesmo só pode executar uma thread por vez, entra em cena o escalonador ● O Escalonador é o responsavel por escolher a proxima Thread a ser executada e fazer a troca de contexto ● As threads dormem e são salvas na hora da troca de contexto, para depois poderem retomar sua execução no ponto que foram interrompidas ● Não temos controle sobre o escalonador
  • 6. Garbage Collector ● É uma Thread responsavel por jogar fora todos os objetos não referenciados ● Ao desalocar um objeto, não se pode afirmar se ele ainda está na memoria ● O que se pode afirmar é que ao ser desalocado, em algum momento o GC irá liberar aquele epaço na memória
  • 7. Problemas de Concorrência ● Ao trabalhar com Threads, em algumas situações teremos uma ou mais Threads tentando acessar/modificar um recurso ao mesmo tempo ● Imagine que duas Threads estejam efetuando uma operação em ContaCorrente, uma saca e outra deposita. É possivel que uma das operações seja ignorada. ● Para evitar esse tipo de situação a palavra synchronized é utilizada ● Relembrando collections: ArrayList != Vector HashMap != Hashtable
  • 8. Aplicações ● Processameto paralelo ● Processamento concorrente ● Conexão com servidores ● Map/Reduce ● Aproveitamento de processadores multicore