Каква е разликата между сопрограма и нишка?
Каква е разликата между сопрограма и нишка?

Видео: Каква е разликата между сопрограма и нишка?

Видео: Каква е разликата между сопрограма и нишка?
Видео: ТАКОВ МОЙ ПУТЬ В L4D2 2024, Може
Anonim

Една важна разлика между нишките и сопрограми е това нишки обикновено са предварително планирани докато сопрограми не са. Защото нишки може да бъде разсрочено по всяко време и може да се изпълнява едновременно, използвайки програми нишки трябва да внимавате за заключване.

По този начин, какви са сопрограмите, изпълнява ли се в различна нишка?

Корутини няма какво да направи с Конци . Coroutine методи мога да се изпълняват парче по парче с течение на времето, но всички процеси все още се извършват от един главен Конец . Ако имате повече от един логически процесор, много нишки се изпълняват на различен процесори.

Освен това, какво е нишка в програмирането? А конец в компютърните науки е съкращение от a конец на изпълнение. Конци са начин за а програма да се раздели (наречено "разделяне") на две или повече едновременно (или псевдоедновременно) изпълнявани задачи.

Също така трябва да знаете какво представлява Coroutine, изпълнява ли се в нова нишка?

Какво се случва с а сопрограми е че е така бягай на главния конец всеки кадър и се изпълнява, докато не направи добив - след това ще спре, докато не бъде изпълнено условието за доходност. А конец ефективно бяга едновременно с друг код (това е вярно само когато имате няколко ядра).

Кога трябва да използвам runBlocking?

Всъщност ти използвайте runBlocking да извикате спиращи функции в "блокиращ" код, които иначе не биха били извикани там или с други думи: вие използване той за извикване на suspend функции извън контекста на сопрограмата (във вашия пример блокът, предаван на async, е функцията suspend).

Препоръчано: