Hvad er forskellen mellem en coroutine og en tråd?
Hvad er forskellen mellem en coroutine og en tråd?

Video: Hvad er forskellen mellem en coroutine og en tråd?

Video: Hvad er forskellen mellem en coroutine og en tråd?
Video: FANG Interview Question | Process vs Thread 2024, November
Anonim

En vigtig forskel mellem tråde og koroutiner er det tråde er typisk præventivt planlagt mens koroutiner er ikke. Fordi tråde kan omlægges på et hvilket som helst tidspunkt og kan køre samtidig, programmer ved hjælp af tråde skal være forsigtig med at låse.

På denne måde, hvad er koroutiner, kører det på en anden tråd?

Coroutiner har intet at gør med Tråde . Coroutine metoder kan udføres stykke for stykke over tid, men alle processer udføres stadig af en enkelt hovedledning Tråd . Hvis du har mere end én logisk CPU, mange tråde udføres på forskellige CPU'er.

Derudover, hvad er tråd i programmering? EN tråd i datalogi er en forkortelse for en tråd af henrettelse. Tråde er en måde for en program at opdele (kaldet "opdele") sig selv i to eller flere samtidigt (eller pseudo-samtidigt) kørende opgaver.

Også at vide er, hvad er Coroutine, kører det på ny tråd?

Hvad sker der med en coroutine er, at det er løb på hovedet tråd hver frame og udføres, indtil den giver et udbytte - så vil den suspendere, indtil udbyttebetingelsen er opfyldt. EN tråd effektivt løber på samme tid som anden kode (dette er kun sandt, når du har flere kerner).

Hvornår skal jeg bruge runBlocking?

Faktisk dig brug runBlocking at kalde suspenderingsfunktioner i "blokerende" kode, som ellers ikke ville kunne kaldes der, eller med andre ord: du brug det at kalde suspend-funktioner uden for coroutine-konteksten (i dit eksempel er blokken, der er sendt til async, suspend-funktionen).

Anbefalede: