Kotlin Multiplatform Academy · Pelajaran

withContext & Konkurensi Terstruktur

Susun pemanggilan suspend tanpa membiarkan pekerjaan bocor

Pelajaran 4 dari 413 langkah

withContext & Konkurensi Terstruktur adalah pelajaran Kotlin Multiplatform Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Kotlin Multiplatform Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Kotlin Multiplatform Academy mencakup 4 pelajaran total.

Menyusun Pekerjaan Asinkron

Fitur nyata sering menggabungkan beberapa langkah asinkron. Konkurensi terstruktur menjaga langkah-langkah tersebut tetap teratur agar tidak ada yang bocor atau berjalan selamanya.

Fungsi withContext

withContext menjalankan sebuah blok pada dispatcher yang dipilih dan mengembalikan hasilnya. Fungsi ini menangguhkan eksekusi hingga selesai, lalu melanjutkan dari tempat Anda sebelumnya.

val u = withContext(Dispatchers.Default) { parse(raw) }

Berpindah Thread dengan Rapi

Gunakan fungsi ini untuk memindahkan pekerjaan berat dari thread UI, lalu kembali lagi. Nilai yang dikembalikan mengalir keluar seolah-olah tidak terjadi perpindahan thread.

val n = withContext(Dispatchers.Default) { count(text) }

Anak Termasuk dalam Induk

Coroutine yang Anda mulai di dalam scope adalah anak-nya. Induk tidak akan selesai hingga semua anaknya selesai.

Menjalankan Dua Hal Sekaligus

Mulai pekerjaan paralel dengan async, yang mengembalikan Deferred. Kemudian tunggu kedua hasilnya dengan await agar dapat menggabungkannya secara efisien.

val a = async { loadA() }
val b = async { loadB() }

Tunggu Hasilnya

Memanggil await menangguhkan eksekusi hingga async tersebut selesai. Dua pemanggilan await memungkinkan panggilan independen berjalan bersamaan, sehingga waktu tunggu total berkurang. ⚡

val total = a.await() + b.await()

coroutineScope Mengelompokkannya

Pembangun coroutineScope menunggu setiap anak di dalamnya selesai sebelum mengembalikan hasil. Inilah inti konkurensi terstruktur.

coroutineScope {
    val x = async { loadA() }
}

Kegagalan Membatalkan Saudara

Jika salah satu anak melemparkan pengecualian di dalam coroutineScope, anak-anak lainnya akan dibatalkan dan kesalahan diteruskan. Tidak ada pekerjaan yatim yang tertinggal.

Tidak Ada Coroutine yang Bocor

Karena pekerjaan dibatasi pada induknya, pekerjaan tersebut tidak dapat keluar dan berjalan tanpa diketahui. Struktur inilah yang membuat logika asinkron dapat diprediksi.

Aturan yang Sama di Setiap Target

Konkurensi terstruktur adalah Kotlin murni, sehingga jaminan ini berlaku secara identik di Android dan iOS. Alur bersama Anda berperilaku sama.

Gabungkan, Tunggu, Kembalikan

Polanya sederhana: ganti konteks, jalankan beberapa pekerjaan dengan async, tunggu, lalu kembalikan hasilnya. Konkurensi terstruktur menjaga semuanya tetap rapi dan aman. 🎯

Pemeriksaan Singkat

Satu pemeriksaan terakhir tentang konkurensi terstruktur.

Ringkasan

Anda telah mempelajari withContext untuk berpindah thread dan konkurensi terstruktur untuk membatasi, menjalankan secara paralel, serta menunggu pekerjaan asinkron tanpa kebocoran. 🎉

Gratis untuk memulai

Belajar Kotlin dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
30
Pelajaran
120

Pertanyaan yang Sering Diajukan

Apakah pelajaran “withContext & Konkurensi Terstruktur” gratis?

Ya — teks lengkap “withContext & Konkurensi Terstruktur” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Kotlin Multiplatform Academy, upgrade ke CoddyKit PRO. Kursus Kotlin Multiplatform Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “withContext & Konkurensi Terstruktur”?

Susun pemanggilan suspend tanpa membiarkan pekerjaan bocor Kamu berlatih Kotlin Multiplatform Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Kotlin Multiplatform Academy?

Tidak diperlukan pengalaman sebelumnya. Kotlin Multiplatform Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “withContext & Konkurensi Terstruktur” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Kotlin Multiplatform Academy ini?

Ya. Setiap pelajaran Kotlin Multiplatform Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Fungsi suspend yang Berfungsi di Mana Saja
  2. Dispatcher di Berbagai Platform
  3. CoroutineScope & Siklus Hidup
  4. withContext & Konkurensi Terstruktur
← Kembali ke Kotlin Multiplatform Academy