Корутин менен жиптин ортосунда кандай айырма бар?
Корутин менен жиптин ортосунда кандай айырма бар?

Video: Корутин менен жиптин ортосунда кандай айырма бар?

Video: Корутин менен жиптин ортосунда кандай айырма бар?
Video: #1 Что такое корутина. Важные особенности || Курс по корутинам 2024, Май
Anonim

Бир маанилүү жиптердин ортосундагы айырма жана coroutines ошол жиптер адатта алдын ала пландаштырылган coroutines эмес. Анткени жиптер каалаган көз ирмемде кайра пландаштырылышы мүмкүн жана бир эле учурда, колдонуп программаларды аткара алат жиптер бекитүүдө этият болушу керек.

Ушундай жол менен, ал ар кандай жипте иштейби?

Корутиндер эч нерсеси жок кыл менен Жиптер . Корутин ыкмалары болот убакыттын өтүшү менен бөлүк-бөлүк аткарылат, бирок бардык процесстер дагы эле бир негизги тарабынан аткарылат Жип . Эгер сизде бирден ашык логикалык CPU болсо, көп жиптер күнү аткарылат башкача CPU'лар.

Андан тышкары, программалоодо жип деген эмне? А жип информатикада а үчүн кыска жип аткарылышынын. Жиптер үчүн жол болуп саналат программасы өзүн эки же андан көп бир убакта (же псевдо-бир убакта) ишке ашырууга ("бөлүү" деп аталат) бөлүү.

Ошондой эле билүү үчүн, Coroutine деген эмне, ал жаңы жипте иштеп жатат?

а менен эмне болот корутин бул ошол чуркоо негизги боюнча жип ар бир кадр жана ал түшүм бергенге чейин аткарат - андан кийин түшүмдүүлүк шарты аткарылмайынча токтоп турат. А жип натыйжалуу чуркайт башка коддор менен бир эле учурда (бул бир нече ядролоруңуз болгондо гана туура болот).

RunBlockingди качан колдонушум керек?

Чынында сен runBlocking колдонуңуз "бөгөттөө" кодундагы токтотуу функцияларын чакыруу үчүн, антпесе ал жерде чалууга болбойт же башкача айтканда: сиз колдонуу аны корутиндик контексттен тышкаркы токтотуу функцияларын чакыруу үчүн (сиздин мисалыңызда асинхрондоштурууга өткөн блок токтотуу функциясы болуп саналат).

Сунушталууда: