Vad är skillnaden mellan en koroutin och en tråd?
Vad är skillnaden mellan en koroutin och en tråd?

Video: Vad är skillnaden mellan en koroutin och en tråd?

Video: Vad är skillnaden mellan en koroutin och en tråd?
Video: FANG Interview Question | Process vs Thread 2024, April
Anonim

En viktig skillnad mellan trådarna och koroutiner är det trådar är vanligtvis förebyggande schemalagda medan koroutiner är inte. Eftersom trådar kan schemaläggas när som helst och kan köras samtidigt, program som använder trådar måste vara försiktig med låsning.

På det här sättet, vad är koroutiner körs på olika trådar?

Coroutiner har inget att do med Trådar . Coroutine metoder burk utföras bit för bit över tiden, men alla processer görs fortfarande av en enda huvudenhet Tråd . Om du har mer än en logisk CPU, många trådar avrättas på annorlunda CPU:er.

Dessutom, vad är tråd i programmering? A tråd i datavetenskap är en förkortning för a tråd av avrättningen. Trådar är ett sätt för en program att dela (benämnt "dela upp") sig själv i två eller flera samtidigt (eller pseudo-samtidigt) pågående uppgifter.

Också att veta är, vad är Coroutine körs det på ny tråd?

Vad händer med en coroutine är att det är springa på huvudet tråd varje bildruta och körs tills den ger en avkastning - sedan kommer den att avbrytas tills avkastningsvillkoret är uppfyllt. A tråd effektivt springer samtidigt som annan kod (detta är bara sant när du har flera kärnor).

När ska jag använda runBlocking?

Egentligen du använd runBlocking att anropa avstängningsfunktioner i "blockerande" kod som annars inte skulle kunna anropas där eller med andra ord: du använda sig av det för att anropa suspend-funktioner utanför coroutine-kontexten (i ditt exempel är blocket som skickas till async suspend-funktionen).

Rekommenderad: