Kotlin Coroutine okuyorum ve bunun suspend
işleve dayalı olduğunu biliyorum . Ama ne anlama suspend
geliyor?
Coroutine veya fonksiyon askıya mı alındı?
Gönderen https://kotlinlang.org/docs/reference/coroutines.html
Temel olarak, eş değerler, bir iş parçacığını engellemeden askıya alınabilen hesaplamalardır
İnsanların sık sık "işlevi askıya al" dediklerini duydum. Ama bence görevin bitmesini beklediği için askıya alınan coroutine mi? "askıya alma" genellikle "işlemi durdur" anlamına gelir, bu durumda koroutin boştadır.
🤔 Koroutin askıya alındı mı demeliyiz?
Hangi korutin askıya alınır?
Gönderen https://kotlinlang.org/docs/reference/coroutines.html
Analojiye devam etmek için, await (), bir hesaplama yapılıncaya kadar bir eşdizimi askıya alan ve sonucunu döndüren bir askıya alma işlevi olabilir (bu nedenle bir eşzamansız {} bloğundan da çağrılabilir):
async { // Here I call it the outer async coroutine
...
// Here I call computation the inner coroutine
val result = computation.await()
...
}
🤔 "Bir hesaplama yapılana kadar bir koroutini askıya alır" diyor, ancak koroutin hafif bir iş parçacığı gibidir. Öyleyse, koroutin askıya alınırsa, hesaplama nasıl yapılabilir?
Biz bkz await
üzerinde denir computation
bu olabilir böylece, async
o döner Deferred
başka eşyordam başlatabileceği konusunda araçlar,
fun computation(): Deferred<Boolean> {
return async {
true
}
}
🤔 Alıntı , bir koroutini askıya aldığını söylüyor . Bu ifadeyle suspend
dış async
eşyordam veya suspend
iç computation
eşyordam?
Does suspend
ortalama o dış ederken async
eşyordam (bekliyor await
iç için) computation
bitirmek için eşyordamın, bu (dış async
eşyordam) iplik havuzuna Idles (dolayısıyla adı askıya) ve döner iplik ve ne zaman çocuk computation
eşyordam bitirir, bu (dış async
eşyordam ) uyanır, havuzdan başka bir konu alır ve devam eder?
Konu başlığından bahsetmemin nedeni https://kotlinlang.org/docs/tutorials/coroutines-basic-jvm.html
İş parçacığı, koroutin beklerken havuza döndürülür ve bekleme tamamlandığında, koroutin havuzdaki boş bir iş parçacığı üzerinde devam eder.