Junior — Middle
როგორ შეიძლება გადართოთ კუროტინების შესრულება ერთ თრაკში?
sobes.tech AI
პასუხი AI-სგან
Kotlin- ში, korutin-ებს შეუძლიათ ერთივე ნაკადში გადართვა სხვადასხვა dispatcher-ებისა და ფუნქციების გამოყენებით:
- withContext(Dispatchers.Main) — გადართვა მთავარი (UI) ნაკადზე.
- withContext(Dispatchers.Default) — გადართვა CPU-ინტენსიურ დავალებებისთვის ნაჭრების პულზე.
- withContext(Dispatchers.IO) — გადართვა შესვლის/გამოსვლის ოპერაციების პულზე.
გარდა ამისა, შესაძლებელია yield()-ის გამოყენება, რათა სურვილისამებრ გადაეცეს კონტროლი სხვა korutin-ებს მიმდინარე ნაკადში.
კონტექსტის გადართვის მაგალითი:
launch {
// მუშაობა მთავარი ნაკადში
withContext(Dispatchers.IO) {
// შესვლის/გამოსვლის ოპერაციის შესრულება
}
// დაბრუნება მთავარ ნაკადზე
}