CodeBlanks Logo Icon CodeBlanks

Compute

compute ile basit isolate öğrenirsin.

compute fonksiyonu

compute, Flutter'ın sunduğu basit isolate yardımcısıdır. Tek bir fonksiyonu arka plan isolate'inde çalıştırır ve sonuçu ana isolate'e döndürür.

İmza: Future<R> compute<Q, R>(FutureOr<R> Function(Q) callback, Q message). callback top-level veya statik olmalıdır; message tek parametredir.

Manuel spawn + SendPort seremonisini gizler. Tek sonuç dönen ağır işler için idealdir: dosya ayrıştırma, görüntü işleme, büyük JSON.

compute vs Isolate.spawn

compute, Isolate.spawn'ın üstüne kurulu basit bir sarmaladır. Tek seferlik işleri kolaylaştırır: bir fonksiyon verirsin, bir sonuç alırsın.

Isolate.spawn ise uzun ömürlü isolate'ler için uygundur: mesajlaşma kanalları açık kalır, birden çok mesaj alıp gönderilir.

Seçim: tek sonuç → compute; sürekli haberleşme → Isolate.spawn + SendPort.

Uygulama compute ile kare hesapla

Top-level int kareAl(int x) => x * x; fonksiyonunu tanımla. main'i async yap; var result = await compute(kareAl, 7); ve print(result); ekle.

Başlangıç kodu

main.dart
import 'package:flutter/foundation.dart';

void main() {
  // kareAl fonksiyonunu tanımla (main dışında)
  // async yap; compute ile kareAl(7) çağrısı ekle
}

Örnek çözüm

main.dart
import 'package:flutter/foundation.dart';

int kareAl(int x) => x * x;

void main() async {
  var result = await compute(kareAl, 7);
  print(result);
}

Beklenen çıktı

49

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 compute ne zaman kullanılır?

  • Sürekli akış gerektiğinde
  • Bellek paylaşmak için
  • UI çizimini hızlandırmak için
  • Tek sonuç dönen ağır işlerde Doğru cevap

Açıklama: compute tek sonuç dönen ağır işler için idealdir.

2 compute parçalarını eşleştir

Kavram Anlamı
compute Arka plan yardımcısı
callback Çalışacak fonksiyon
message Tek girdi parametresi
Future<R> Dönüş türü

3 compute çağrısı

Soru
var result = await ____(kareAl, 7);
Cevap
var result = await compute(kareAl, 7);

Açıklama: compute ile kareAl(7) arka planda çalışır.

İleri seviye bölümündeki tüm dersler