← Kembali ke kursus
Pelajaran kursus · Dart
Pelajaran 32

Isolates

Isolate.spawn, SendPort/ReceivePort, message passing.

Pahami konsepnya

Dart single-threaded per isolate. Isolate.spawn menjalankan fungsi di thread terpisah tanpa shared memory — komunikasi lewat pesan (SendPort/ReceivePort). Isolate utama: Isolate.main; worker: Isolate.run untuk komputasi berat tanpa membekukan UI.

Coba contoh kode

import "dart:isolate";

Future<void> main() async {
  var hasil = await Isolate.run(() {
    var total = 0;
    for (var i = 1; i <= 1000000; i++) total += i;
    return total;
  });
  print(hasil);  // 500000500000
}

Isolate.run menjalankan komputasi berat di thread terpisah — UI tidak membeku. Hasil dikirim balik via Future.

Latihan singkat

Uji: jumlahkan 1..100 dengan loop biasa — harus `5050`.