Qual é a diferença entre uma co-rotina e um thread?
Qual é a diferença entre uma co-rotina e um thread?

Vídeo: Qual é a diferença entre uma co-rotina e um thread?

Vídeo: Qual é a diferença entre uma co-rotina e um thread?
Vídeo: Afinal, qual a DIFERENÇA entre GOROUTINES e THREADS? 2024, Maio
Anonim

Um importante diferença entre tópicos e co-rotinas é aquele tópicos são normalmente programados preventivamente enquanto co-rotinas não são. Porque tópicos pode ser reprogramado a qualquer momento e pode ser executado simultaneamente, os programas usando tópicos deve ter cuidado com o bloqueio.

Desse modo, quais são as corrotinas que ele executa em um thread diferente?

Corrotinas não tem nada para Faz com Tópicos . Corrotina métodos posso ser executado peça por peça ao longo do tempo, mas todos os processos ainda são feitos por um único principal Fio . Se você tiver mais de uma CPU lógica, muitos tópicos são executados em diferente CPUs.

Além disso, o que é thread na programação? UMA fio em ciência da computação é a abreviação de fio de execução. Tópicos são um caminho para um programa para se dividir (denominado "dividir") em duas ou mais tarefas em execução simultaneamente (ou pseudo-simultaneamente).

Também para saber, o que é Coroutine está sendo executado em um novo segmento?

O que acontece com um co-rotina é que é corre no principal fio cada quadro é executado até produzir um rendimento - então, ele será suspenso até que a condição de rendimento seja satisfeita. UMA fio efetivamente corre ao mesmo tempo que outro código (isso só é verdade quando você tem vários núcleos).

Quando devo usar runBlocking?

Na verdade você use runBlocking para chamar funções de suspensão em código de "bloqueio" que de outra forma não seria possível chamar lá ou em outras palavras: você usar para chamar funções de suspensão fora do contexto de co-rotina (em seu exemplo, o bloco passado para async é a função de suspensão).

Recomendado: