Wat is die verskil tussen 'n koroutine en 'n draad?
Wat is die verskil tussen 'n koroutine en 'n draad?

Video: Wat is die verskil tussen 'n koroutine en 'n draad?

Video: Wat is die verskil tussen 'n koroutine en 'n draad?
Video: Собаку бросили в лесу с коробкой макарон. История собаки по имени Ринго. 2024, Mei
Anonim

Een belangrik verskil tussen drade en koroutines is dit drade word tipies vooraf geskeduleer terwyl koroutines is nie. Omdat drade kan op enige oomblik herskeduleer word en kan gelyktydig uitgevoer word, programme gebruik drade moet versigtig wees om te sluit.

Op hierdie manier, wat is koroutines, loop dit op verskillende draad?

Coroutines niks te hê nie doen met Drade . Coroutine metodes kan word stuk vir stuk oor tyd uitgevoer, maar alle prosesse word steeds deur 'n enkele hoof gedoen Draad . As jy meer as een logiese SVE het, baie drade word uitgevoer op anders SVE's.

Boonop, wat is draad in programmering? A draad in rekenaarwetenskap is kort vir 'n draad van teregstelling. Drade is 'n manier vir 'n program om homself te verdeel (genoem "split") in twee of meer gelyktydig (of pseudo-gelyktydig) lopende take.

Om ook te weet is, wat is Coroutine, loop dit op 'n nuwe draad?

Wat gebeur met 'n koroutine is dat dit is hardloop op die hoof draad elke raam en voer uit totdat dit 'n opbrengs lewer - dan sal dit opskort totdat die opbrengsvoorwaarde nagekom word. A draad effektief lopies op dieselfde tyd as ander kode (dit is slegs waar as jy veelvuldige kerns het).

Wanneer moet ek runBlocking gebruik?

Eintlik jy gebruik runBlocking om opskortfunksies in "blokkeer"-kode te noem wat andersins nie daar oproepbaar sou wees nie, of met ander woorde: jy gebruik dit om opskortfunksies buite die koroutine-konteks te roep (in jou voorbeeld is die blok wat na asinc oorgedra is die opskortfunksie).

Aanbeveel: