Корутин ба утас хоёрын ялгаа юу вэ?
Корутин ба утас хоёрын ялгаа юу вэ?

Видео: Корутин ба утас хоёрын ялгаа юу вэ?

Видео: Корутин ба утас хоёрын ялгаа юу вэ?
Видео: Android - Коротко про UI-тести на Espresso 2024, Арваннэгдүгээр
Anonim

Нэг чухал утас хоорондын ялгаа болон корутинууд тийм үү утаснууд ихэвчлэн урьдчилан төлөвлөдөг корутинууд биш юм. Учир нь утаснууд ямар ч агшинд дахин төлөвлөх боломжтой бөгөөд нэгэн зэрэг програмуудыг ашиглан ажиллуулж болно утаснууд түгжихдээ болгоомжтой байх хэрэгтэй.

Ийм байдлаар, энэ нь өөр өөр thread дээр ажилладаг корутинууд гэж юу вэ?

Корутинууд хийх зүйлгүй хийх хамт Threads . Корутин аргууд чадна цаг хугацааны явцад хэсэг хэсгээрээ хийгдэх боловч бүх процессууд нэг голоор хийгдсэн хэвээр байна Thread . Хэрэв танд нэгээс олон логик CPU байгаа бол, олон утас дээр гүйцэтгэгддэг өөр CPU-ууд.

Нэмж хэлэхэд, програмчлалд thread гэж юу вэ? А утас компьютерийн шинжлэх ухаанд a гэсэн үгийн товчлол утас гүйцэтгэлийн. Threads нь нэг арга юм хөтөлбөр ("хуваах" гэж нэрлэдэг) хоёр ба түүнээс дээш зэрэг (эсвэл псевдо- зэрэг) гүйцэтгэх ажилд хуваах.

Мөн мэдэх зүйл бол Coroutine гэж юу вэ, энэ нь шинэ thread дээр ажиллаж байна уу?

а-тай юу болох вэ корутин Энэ нь тийм юм гүйх үндсэн дээр утас фрэйм бүрийг бүтээж, өгөөж өгөх хүртэл ажиллана - дараа нь өгөөжийн нөхцөл хангагдтал түр зогсоно. А утас үр дүнтэй гүйдэг бусад кодтой нэгэн зэрэг (энэ нь олон цөмтэй үед л үнэн юм).

Би хэзээ runBlocking ашиглах ёстой вэ?

Үнэндээ чи runBlocking ашиглах "Блоклох" код дотор дуудах боломжгүй, эсвэл өөрөөр хэлбэл, түдгэлзүүлэх функцуудыг дуудах: та ашиглах Энэ нь корутин контекстээс гадуур түр зогсоох функцийг дуудах (таны жишээн дээр асинхрончлолд шилжүүлсэн блок нь түр зогсоох функц юм).

Зөвлөмж болгож буй: