Olá. E bem-vindo. Nesta lição, você aprenderá sobre os fundamentos das corrotinas. Então, o que são corrotinas e por que precisamos delas? Em outras palavras, qual é o problema? Portanto, o problema no desenvolvimento de software é a falta de tempo. São cálculos pesados, largura de banda pesada, é processamento lento e atrasos. Portanto, o propósito em corrotinas para Kotlin. E a razão pela qual Kotlin e desenvolvedores construíram corrotinas é contornar os atrasos. Portanto, coroutines é uma abordagem multifacetada e multiencadeada para uma parede de tijolos digital. Ok, então quando um aplicativo é iniciado como este emCriar, a primeira coisa que acontece é o onCreate compila um encadeamento padrão e esse encadeamento é chamado de encadeamento principal. E esse tópico principal está indo muito bem quando está fazendo operações leves, como o usuário está clicando em um botão ou qualquer tipo de interação do usuário. E funciona muito bem quando está fazendo cálculos matemáticos simples operações ou operações lógicas simples. Mas o problema surge quando o thread encontra uma operação pesada, como ir contra a internet, talvez uma rede lenta, ou tem que pegar um arquivo de um banco de dados, então ele tem que analisar todos os dados e indexar todos os dados. Talvez tenha que executar uma consulta de banco de dados ou está carregando ou baixando algum tipo de imagem a internet ou o servidor de outra pessoa, ou está apenas baixando uma enorme quantidade de dados. Então, quando temos essas operações pesadas, o thread ficará bloqueado e será fazer nosso aplicativo travar lá. E então o usuário fica frustrado porque eles não sabem o que está acontecendo. Tudo o que eles sabem é que o aplicativo está bloqueado. O aplicativo está lento. E se ficar lá por muito tempo, eventualmente pode falhar. Então, o que fazemos para resolver esse problema? Temos que desbloqueá-lo, e é aí que entram as corrotinas. Por exemplo, uma maneira que uma corrotina se movimenta esse problema é chamado de bloqueio de execução. Outra maneira é colocar o thread no modo de suspensão. Então, para contornar esse problema, o que temos que fazer é criar outro tópico, talvez um thread em segundo plano ou multi-threads, mas temos que ter cuidado porque criar todos esses tópicos consome muita memória do computador. E se o seu dispositivo ficar sem memória, é isso, ele vai travar. Então as pessoas em Kotlin inventaram corrotinas, e você pode executar essa corrotina em qualquer tarefa de longa execução que exija cálculos pesados. E você também pode invocar corrotinas que são suspendíveis para que você possa executar essas tarefas pesadas sem interferir no fio principal e usando toda a sua memória. Então, o que exatamente é uma corrotina. Corrotina é em essência, um fio muito leve que você pode suspender ou executado em cima de outros threads. Então, quando a corrotina é suspensa, toda essa computação será pausada e removida do thread que usa a memória. E então esse fio pode ser liberado e utilizado para outros fins. E não vai comer em sua memória. Essas corrotinas podem ser executadas simultaneamente, como vemos aqui lançando o trabalho um e o trabalho dois, trabalho três e trabalho quatro, todos simultaneamente. E essas corrotinas podem se comunicar umas com as outras e até esperar que outro termine. Todas essas corrotinas trabalham juntas como uma unidade fazendo tarefas separadas. Assim, as corrotinas podem pausar ou atrasar, e, em seguida, retome quando quiser. Você pode ter controle total sobre quando a corrotina inicia e para e pausa dando-lhe limites de tempo e parâmetros de tempo. Então podemos pegar um trabalho ou uma corrotina, e iniciá-lo e pará-lo e pausá-lo e retomá-lo e cancelá-lo quando quisermos. Assim, alguns conceitos importantes na corrotina é o conceito de escopo. Cada corrotina tem seu próprio escopo com o qual podemos lidar. Algumas corrotinas ou globais. Outras corrotinas invocam apenas em uma área local. Outro conceito importante dentro das corrotinas é o contexto dessa corrotina. Quais são as variáveis e quais são as entradas e o que é os dados dentro da corrotina que fornece uma corrotina seu caráter, sua maquiagem? Tudo isso é conhecido como contexto de corrotina. Outro conceito importante da corrotina é como ele pode ser suspenso. Corremos toda a rotina? O que essa rotina pode ser suspensa como as chamamos? Outro conceito importante de corrotinas é o trabalho, ou a tarefa que está realizando naquele momento. Os trabalhos são uma forma de gerenciar nossas tarefas e gerenciando nossas corrotinas, porque podemos querer passar a uma corrotina alguns parâmetros, e, em seguida, retornar esses parâmetros para serem usados para o próximo trabalho. Ok, então esses são os conceitos básicos da funcionalidade que precisamos para corrotinas. Então, isso conclui nossa lição sobre os fundamentos da corrotina. Obrigado por assistir. Fique ligado na próxima aula. Então vamos.