Please enable JavaScript.
Coggle requires JavaScript to display documents.
Threads (O que é? ((TP) O caso de uso mais comum de threads no Java é para…
Threads
O que é?
-
(ME) Threads são fluxos de um programa em execução, um programa em execução é chamado de processo.
(TP) Thread são estruturas de execução pertencentes a um processo e assim compartilham os segmentos de código e dados e os recursos alocados ao sistema operacional pelo processo.
Threads são basicamente a execução de várias tarefas ao mesmo tempo, por exemplo você utilizar o celular e o PC simultaneamente, mas podem estar presentes em diversas aplicações (PG)
(V/M)Thread "Fluxo" e "fio", Thread está relacionada ao fluxo de execução dentro de um processo
(TP) É similar à programas sequenciais, pois possui um início, sequência de execução e um fim e em qualquer momento uma thread possui um único ponto de execução.
(YN)Thread é um pequeno programa que trabalha como um subsistema, sendo uma forma de um processo se autodividir em duas ou mais tarefas. É o termo em inglês para Linha ou Encadeamento de Execução.
-
(GB) Threads são subdivisões de processos, ou seja, cada processo possui uma thread, o que possibilita serem divididos e trabalhados em paralelo.
(YN)Para programas "normais" (single thread), tem um único ponto de execução dentro do programa num momento particular
Um thread tem um início, uma sequência e um fim, como um programa "normal"
Qual a utilidade?
Cada processo possui diversas threads (linhas de instruções), assim nós podemos dividir partes do nosso processo (programa em Java) para trabalhar paralelamente. (LN)
Em java pode ser usado para executar 2 ou mais Threads ao mesmo tempo. É utilizado para fazer programas paralelos. (GB/LN)
-
-
Facilita o desenvolvimento, visto que torna possível elaborar e criar o programa em módulos, experimentando-os isoladamente ao invés de executar tudo em um único bloco de código (AL)
Em Java as vezes é muito útil executar ao mesmo tempo várias estruturas de algorítimos, por isso para ganhar desempenho em plataformas multistreams é usado os Threads (PG)
Não deixam o processo parado, pois quando um deles está aguardando um determinado dispositivo de entrada ou saída, ou ainda outro recurso do sistema, outro thread pode estar trabalhando (AL)
(ME) Threads facilitam o desenvolvimento, pois ele permite desenvolver o programa em módulos, e assim da para testar eles separadamente
Como funciona?
(IM) Cada linha de execução (thread) possui seus próprios registradores (registers) e sua pilha de funções (stack). Se a máquina rodando esse processo possuir apenas um processador, essas threads serão escalonadas para que, apenas uma de cada vez, faça uso do processador. Se forem 4 processadores, podemos ter uma execução completamente paralela onde cada thread é escalonada em um processador diferente.
Quando uma aplicação Java é executada: A JVM cria um objeto do tipo Thread cuja tarefa a ser executada é descrita pelo método main().OThread é iniciado automaticamente. Os comandos descritos descritos pelo método main() são executados sequencialmente até que o método termine e o thread e o thread acabe (V/M) LINK-http://www.inf.puc-rio.br/~inf1621/java2.pdf
(GB) Runnable: é a interface padrão para Threads. Por boas práticas, geralmente é usado o Runnable em vez de estender o Thread.
É uma sequência de comandos sendo executados em um programa. Se você tiver duas threads, terá duas sequências de comandos executando ao mesmo tempo no mesmo programa ou processo (AL)
(IM) Quando mais de uma thread tenta acessar uma variável ao mesmo tempo, temos uma condição de corrida. O impacto dessa condição, é que o resultado da computação dessas threads depende de quem executou primeiro. Não há como garantir que independente do número de execuções o resultado será o mesmo.
(ME) Cada thread possui seus próprios registradores e sua pilha de funções (stack), se a máquina rodando esse processo possuir apenas um processador, essas threads serão organizadas em grupo para que, apenas uma de cada vez, faça uso do processador.
(IM) A exclusão mútua é uma propriedade que garante que exclusivamente apenas uma unidade de execução (thread) esteja executando sua seção crítica do programa por vez.
Um algoritmo que garanta efetivamente a exclusão mútua, garante que não haja condições de corrida em sua execução.
Durante a execução de um programa Java a JVM cria um objeto Thread que permite ao programa executar Threads, essa Threads são encapsuladas em um método run() que é encaminha para um método Thread criado a partir do objeto Runnable que fornece suporte para as Threads para serem executadas (PG)
-