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`.