Wat is het verschil tussen een coroutine en een draad?
Wat is het verschil tussen een coroutine en een draad?

Video: Wat is het verschil tussen een coroutine en een draad?

Video: Wat is het verschil tussen een coroutine en een draad?
Video: FANG Interview Question | Process vs Thread 2024, Mei
Anonim

een belangrijke verschil tussen threads en coroutines is dat draden worden meestal preventief gepland terwijl: coroutines zijn niet. Omdat draden kan op elk moment opnieuw worden gepland en kan gelijktijdig worden uitgevoerd, programma's met behulp van draden moet voorzichtig zijn met het vergrendelen.

Op deze manier, wat zijn coroutines, draait het op verschillende threads?

Coroutines heb niets te doen doen met Draden . Coroutine methoden kan worden in de loop van de tijd stuk voor stuk uitgevoerd, maar alle processen worden nog steeds door één hoofdtaak uitgevoerd Draad . Als u meer dan één logische CPU heeft, veel draadjes worden uitgevoerd op verschillend CPU's.

Bovendien, wat is draad in programmeren? EEN draad in de informatica is een afkorting voor a draad van uitvoering. Draden zijn een manier voor een programma om zichzelf te verdelen (genaamd "splitsen") in twee of meer gelijktijdig (of pseudo-gelijktijdig) lopende taken.

Ook om te weten is, wat is Coroutine draait het op een nieuwe thread?

Wat gebeurt er met een coroutine is dat het is? loop op het hoofd draad elk frame en wordt uitgevoerd totdat het een opbrengst geeft - dan wordt het onderbroken totdat aan de opbrengstvoorwaarde is voldaan. EEN draad effectief loopt tegelijkertijd met andere code (dit is alleen waar als je meerdere kernen hebt).

Wanneer moet ik runBlocking gebruiken?

eigenlijk jij gebruik runBlocking om opschortingsfuncties aan te roepen in "blokkerende" code die daar anders niet aangeroepen zouden kunnen worden of met andere woorden: jij gebruik maken van het om opschortingsfuncties buiten de coroutine-context aan te roepen (in uw voorbeeld is het blok dat aan async is doorgegeven de onderbrekingsfunctie).

Aanbevolen: