Event Loop dan Microtask
Memahami cara Dart menjadwalkan pekerjaan asinkron
Event Loop dan Microtask adalah pelajaran Dart Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 Dart Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Dart Academy mencakup 4 pelajaran total.
Satu Thread, Tanpa Menunggu
Dart menjalankan kode Anda pada satu thread, tetapi aplikasinya tidak pernah membeku. Rahasianya adalah event loop, yang menjadwalkan pekerjaan alih-alih memblokir. ⚡
Cara Kerja Event Loop
Event loop adalah siklus sederhana: pilih tugas tertunda berikutnya, jalankan sampai selesai, lalu ulangi. Kode Anda berjalan dalam bagian-bagian yang rapi dan tidak terputus.
Synchronous Lebih Dahulu
Semua kode biasa Anda yang berjalan dari atas ke bawah dieksekusi lebih dahulu. Setelah pekerjaan synchronous itu selesai, barulah loop mulai menangani tugas yang dijadwalkan.
Dua Antrean
Loop mengambil pekerjaan dari dua antrean: antrean microtask dan antrean event. Microtask selalu didahulukan daripada event.
Antrean Microtask
Microtask adalah pekerjaan kecil yang ditunda, seperti callback Future yang sudah selesai. Loop mengosongkan semua microtask sebelum menyentuh antrean event.
Antrean Event
Antrean event menampung item yang lebih besar: timer, pembacaan file, ketukan, dan respons jaringan. Semuanya menunggu sampai semua microtask selesai.
Menjadwalkan Microtask
Anda dapat menyerahkan pekerjaan ke antrean microtask dengan scheduleMicrotask. Pekerjaan itu dijalankan setelah kode saat ini, tetapi sebelum event apa pun.
scheduleMicrotask(() => print("microtask"));
print("right now");Menjadwalkan Event
Timer (atau Future.delayed dengan nilai nol) menempatkan callback di antrean event, sehingga callback dijalankan setelah semua microtask yang tertunda.
Timer.run(() => print("event"));
print("right now");Microtask Menang
Jika keduanya diantrekan, microtask dijalankan lebih dahulu. Urutan ini membuat rangkaian Future tetap cepat dan mudah diprediksi.
scheduleMicrotask(() => print("A"));
Timer.run(() => print("B"));
// prints A then BMengapa Tetap Lancar
Karena setiap tugas dijalankan sampai selesai, aplikasi Anda tidak pernah diperbarui setengah-setengah. Loop menjaga semuanya tetap responsif tanpa perlu mengatur thread secara manual.
Jangan Membuat Loop Kelaparan
Membanjiri antrean microtask dapat memblokir event selamanya dan membekukan input. Buat pekerjaan microtask tetap singkat agar event juga mendapat giliran.
Pemeriksaan Singkat
Pemeriksaan singkat tentang urutan antrean.
Ringkasan: Event Loop
Anda telah mempelajari bahwa event loop menjalankan kode sync lebih dahulu, kemudian mengosongkan microtask, lalu menangani event. Urutan ini membuat Dart tetap single-threaded sekaligus lancar. 🎉
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Event Loop dan Microtask” gratis?
Ya — teks lengkap “Event Loop dan Microtask” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Dart Academy, upgrade ke CoddyKit PRO. Kursus Dart Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Event Loop dan Microtask”?
Memahami cara Dart menjadwalkan pekerjaan asinkron Kamu berlatih Dart 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 Dart Academy?
Tidak diperlukan pengalaman sebelumnya. Dart 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 1 dari 4.
Berapa lama pelajaran “Event Loop dan Microtask” 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 Dart Academy ini?
Ya. Setiap pelajaran Dart 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
- Event Loop dan Microtask
- Membuat dan Menunggu Future
- Penanganan Error dalam Kode async
- Future.wait dan Pekerjaan Paralel