Kuna tofauti gani kati ya coroutine na thread?
Kuna tofauti gani kati ya coroutine na thread?

Video: Kuna tofauti gani kati ya coroutine na thread?

Video: Kuna tofauti gani kati ya coroutine na thread?
Video: Je kuna tofauti gani kati ya mzee kanisa, pastor, bishop, na oversea 2024, Mei
Anonim

Moja muhimu tofauti kati ya threads na coroutines ni kwamba nyuzi kawaida hupangwa kwa uangalifu wakati coroutines sio. Kwa sababu nyuzi inaweza kuratibiwa upya papo hapo na inaweza kutekeleza wakati huo huo, kwa kutumia programu nyuzi lazima kuwa makini kuhusu kufunga.

Kwa njia hii, ni coroutines gani inaendesha kwenye uzi tofauti?

Coroutines hawana chochote fanya na Mizizi . Coroutine mbinu unaweza kutekelezwa kipande kwa kipande baada ya muda, lakini michakato yote bado inafanywa na kuu moja Uzi . Ikiwa una CPU zaidi ya moja ya kimantiki, nyuzi nyingi zinatekelezwa kwenye tofauti CPU.

Kwa kuongeza, ni nini thread katika programu? A uzi katika sayansi ya kompyuta ni kifupi cha a uzi ya utekelezaji. Mizizi ni njia ya a programu kugawanya (inayoitwa "mgawanyiko") yenyewe katika kazi mbili au zaidi kwa wakati mmoja (au pseudo-wakati huo huo) zinazoendesha.

Pia kujua ni, Coroutine ni nini inaendeshwa kwenye uzi mpya?

Nini kinatokea na a coroutine ni kwamba ni kukimbia juu ya kuu uzi kila fremu na itekeleze mpaka itoe mavuno - basi itasimamisha mpaka hali ya mavuno ifikiwe. A uzi kwa ufanisi anaendesha kwa wakati mmoja na nambari nyingine (hii ni kweli tu wakati una cores nyingi).

Je, ni lini nitumie runBlocking?

Kweli wewe tumia runBlocking kuita vitendaji vya kusimamisha katika msimbo wa "kuzuia" ambao sivyo haungewezekana hapo au kwa maneno mengine: wewe kutumia kuita kazi za kusimamisha nje ya muktadha wa kawaida (kwa mfano wako kizuizi kilichopitishwa kwa usawazishaji ndio kazi ya kusimamisha).

Ilipendekeza: