Thread (entenda como sua aplicação funciona) // Dicionário do Programador

92.92k views1905 WordsCopy TextShare
Código Fonte TV
Você sabe o que é Thread? E processos? Essa parte da computação precisa ser entendida por todos na p...
Video Transcript:
e contextualizando prédio do inglês fio ou linha é um pedaço de um processo capaz de executar determinadas tarefas como se fosse um subsistema um subconjunto viu já complicou Pelo menos você já sabe porque o pessoal do Twitter chama os textões de Ted também podemos definir freddy's do contexto de microprocessadores que indica a capacidade de encadeamento de instruções que podem ser executadas simultaneamente complicou mais ainda mas acalma o seu coração que nesse vídeo você vai sair entendendo o beabá sobre Ted multi-threaded processos trás disso aí flanelista concorrência E por que não semáforos e o mais importante
porque você enquanto o programador precisa conhecer isso então a hoje se ajeita aí e vem para uma aulinha de computação i e foi você deve já executou trade aí no seu cérebro para esse vídeo e para entender tudo direitinho fique focado aqui nas nossas explicações nada de paralelismo por enquanto tudo bem Vamos começar com cadeado do stress de engajamento para você não se perder primeiro deixa o seu like depois seja nosso CDF se inscreveu no canal e por fim no fim do vídeo diga para gente se esse conteúdo não mudou sua forma de pensar em
como os processos funciona deixe também um outro processo Sleeping com o fim do vídeo onde você vai conferir de serviço e da nossa parceira host gator garantimos para você um super desconto nos planos de hospedagem compartilhada no VPS e também em servidores dedicados nós são os clientes também usamos em servidores VPS e dedicado no memória ddr4 e armazenamento com SSD a performance é incrível aqui na descrição do vídeo vamos deixar presente para você comprovar com seus próprios olhos como para hospedagem compartilhada um para servidores VPS e o ou é indicado pronto processo na fila agora
é só seguir acho que a primeira coisa que a gente precisa deixar bem claro porque é prédio Vamos aos poucos quando estamos lidando com sistemas operacionais temos que saber que as aplicações rodam através de dois processos as aplicações são carregadas na memória e aquilo vira um processo ou mais processo o processo nada mais é que um conjunto de instruções dados e estados que também é conhecido como teste e o Fera os dados relacionados o processo tem seu próprio estado dormindo rodando parado e etc ou no programa Vai para memória ele se torna um processo agora
quando um processo é criado ele precisa ter ao menos um prédio o tédio é uma parte um subconjunto de um processo aqui efetivamente a executados podemos definir que escreve é a menor unidade de processamento Ou seja é o que é CPU realmente executa e possui esse conceito de escalamento existe Muita confusão nisso a CPU não executa processos ela precisa de é um prédio para isso o processo é o conceito organizacional de dados o recurso como memória espaço de endereço e etc são locados para o processo Mas quem vai lá pessoalmente bater um papo desenrolar com
o processador são os trades a imagem que mostra como funciona o conceito de multi onde um processo possui vários subconjuntos de crédito que podem ser executados de maneira diferente na CPU uma observação importante Existem duas classificações para prédios podemos de quer nem os prédios ou we use at freddy's creme de usuários executar uma camada acima da de quer meu onde eles não tem suporte é o que é meu Esses são justamente Ted que nós programadores utilizamos em Nossos programas jogos traje quer não são suportados no canal do próprio sistema operacional e os sistemas operacionais modernos
suportam crédito e nível de carne e osso permite que o que é não Execute várias tarefas simultâneas e atenda a várias chamadas de sistema de Canyon simultaneamente Podemos relacionar as várias formas de exibir se você tem um pão nosso cérebro que cabe os dois com mais pode ajudar na didática por enquanto seres humanos não precisamos fazer mais de uma coisa ao mesmo tempo o que que a gente poderia fazer fazer uma coisa de cada vez sem complicação incinerando as tarefas e só entregando Elas quando terminam essa pode ser a abordagem mais lógica porém menos eficaz
temos também melhorar mais tentando priorizar ou seja escalonar as mais importantes em fazer um pouco de cada uma entregando conforme forem terminal que é um conceito mais rústico de concorrência com single-core podemos ainda nesse caso específico adiciona mais cérebros mais pessoas vão núcleo e efetivamente processar as tarefas ao mesmo tempo em paralelo O que é o conceito mais rústico para o paralelismo cada forma de processar essas Travis apresentam soluções e também deficiência Quando falamos em um cenário como mais cérebros estamos fazendo uma associação com os processadores multi-core tipo do Code qual hexa-core por aí vai
eles são núcleos independentes e funcionam com o computadores individuais isso quer dizer que a CPU tem a capacidade de processamento em paralelo mais um uso ou não demais núcleos de depende exclusivamente se a aplicação foi desenvolvida pensando nesse contexto Multiplex podemos agora tentar entender melhor porque a tal da concorrência na execução de crédito dúvida pelo nome você já deve estar desconfiando como funciona quando duas ou mais tarde podem iniciar executar e concluir um tempo sobrepostos intercalando execuções no caso dos single-core dando aquela sensação de que estão realmente sendo executadas simultaneamente esse paradigma pode ser empregada
em CPU multi-core também na concorrência existem muitas de composições simultânea de uma tarefa alguns atenção de paralelismo virtual é como malabarista fazendo malabarismo com muitas bolas a primeira impressão é que ele está fazendo muitas coisas ao mesmo tempo mas o malabarista está apenas jogando uma bola por mão de cada vez ele utilizaram uma mão é sem Gol corce forem as duas então é do outro a já no paralelismo é com nós temos mais malabaristas fazendo o pão malabarismo ao mesmo tempo imagem paralelismo as tarefas estão e ao mesmo tempo por um processador multi-core exatamente Olhar
todos já penso Esse é o cenário perfeito é uma baita vantagem usar o poder total do processamento a favor da velocidade mas existem muitos desafios nesse para de Imagina só que você tem 43 de um processo a serem executados em seu processador quad-core show de bola paralelismo vamos nós cai de cabeça um problema se o prédio Depende de outro para ser executado não vai adiantar Muito É como se você tivesse no ambiente single-core Nesse contexto outras abordagens são utilizadas para tentar resolver esse impasse como semáforo e sincronismo de processos um semáforo basicamente uma indicação de
que um algum recurso está sendo utilizado e dessa forma qualquer tentativa de acessar aquele recurso só estará liberada depois que o semáforo sinalizar dessa forma Geralmente se utiliza a semáforo em situações onde o programa tem várias teses executamos mas possui algum recurso que só pode ser utilizado por um a sede por vezes por isso que falamos que as aplicações esse e programadas para funcionar Neste contexto não é só uma coisa de sistema operacional tentando lidar com raiva a resumir e não confundir nunca mais do que é concorrência e paralelismo a melhor definição veio do blog
fique um dos criadores da linguagem Gol Ele disse que concorrência é sobre lidar com várias coisas ao mesmo tempo enquanto o paralelismo é sobre fazer várias coisas ao mesmo tempo a concorrência está mais ligada a um nível de software enquanto o paralelismo é mais a nível de raça e e agora que eu multi-threaded já está explicado podemos entrar numa área mais espinhosa querido com os benefícios e também os desafios e problemas que elas causam lado dos benefícios obviamente está capacidade de resposta mais rápida assim como compartilhamento e utilização de recursos economia também pois a criação
e gerenciamento de Ted se torna mais fácil a habilidade justamente pela capacidade de Distribuição e execução de várias frete complementando o pela troca de contexto de forma Suave ou seja o procedimento de mudar de uma tarefa para outra até aqui tudo lindo mais os principais problemas do multi-threaded está na rede cancelei o que significa encerrar um crédito antes que ele termine de funcionar vários segmentos podem interferir com os outros quando compartilha de recurso de rádio como Cash por exemplo nesse caso o tempo pode ser até degradado problemas de segurança por conta de compartilhamento de recursos
entre vários fretes no final Helloween que é é necessário avisar a um processo que um evento ocorreu fica mais complicado saber qual Ted é necessário enviar esse aviso somente para todos esses e outros problemas existem abordagens para minimizar e resolver a situação o importante é entender nesse caso é que não existe cenário perfeito chegou a hora de conversar mais sobre um outro conceito chamado de trade sei que nada mais é que um código que funciona Independente de existirem muitos prédios sendo executados ao mesmo tempo existem muitas abordagens na programação para que um código seja thread-safe
como escrever código e single trade exatamente como node.js faz mesmo que por debaixo dos panos ele Execute em múltiplos crédito utilizar objetos imutáveis é uma boa abordagem já que os trades vão perceber que esses objetos não irão interferir na execução elas passam a ser automaticamente três e até já viu nosso dicionário sobre o resto de perceberam que as variáveis nela são por padrão imutáveis a linguagem já nasceu Nesse contexto de multi as variáveis locais para que o trabalho tem seu próprio conjunto privado de variáveis locais armazenados nas tags é muito comum ver códigos com metros
que busco as informações nas variáveis locais processo e armazenam novamente nas variáveis da instância da classe essa abordagem faz com que as variáveis locais não possam ser modificadas através de ação de outros créditos ou seja um método que não faz nada além de examinar e modificar apenas as variáveis locais é automaticamente trade sair agora se ele modifica variáveis objetos que não fazem parte dele aí teremos problemas temos três exemplos aqui de abordagens 36 para códigos mas essa lista é grande as próprias linguagens podem possuir mecanismos e estratégias próprias para trabalhar dessa forma Olha foi uma
ótima oportunidade para você não dizer que já precisou desenvolver códigos 36 para processamento multi-core queremos muito saber tenho certeza que seu comentário vai ajudar muitos deves que estão tentando entender este conceito é e esse tema é muito mais complexo do que estamos abordando aqui viu os modelos de processamento de tarefas nas cpus são a área toda especial da Computação em nossa intenção foi diz que mostrar que mesmo quando você está no seu PC gamer com Core I9 super moderno tem muita programação do lado dos deves para que esses games consigam utilizar de forma correta todos
os núcleos disponíveis no seu computador Esperamos que você possa explorar um pouco mais dos Ted na sua linguagem favorita e se ela dá suporte a múltiplos LED Aliás na maior parte das linguagens modernas já existem dispositivos próprios para controle do stress nós vamos ficando por aqui com tchau Company mesmo dupla Certo Gabriel tchau até o próximo vídeo mais ou menos paralelo e concorrência isso ele é um processo com vários e vamos ver o Gabriel é um Gol corce vamos ver como ele se sai com um traje e já deu muito Travolta Olá boa duas três
tá 31 o Júlio a
Copyright © 2024. Made with ♥ in London by YTScribe.com