0Pricing
Dart Academy · Pelajaran

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 B

Mengapa 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

  1. Event Loop dan Microtask
  2. Membuat dan Menunggu Future
  3. Penanganan Error dalam Kode async
  4. Future.wait dan Pekerjaan Paralel
← Kembali ke Dart Academy