Sobes.tech
Junior

Programlamada bağlamında akışlar nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

İş Parçası (thread) — Çok görevli bir işletim sisteminde en küçük yürütme birimidir. Bir programın aynı anda birden fazla görevi, aynı süreç içinde gerçekleştirmesini sağlar.

Ana özellikler:

  • Kaynak paylaşımı: Aynı süreçteki iş parçaları, ortak adres alanını, belleği ve diğer kaynakları paylaşır.
  • Daha düşük maliyetler: Yeni bir iş parçası oluşturmak, yeni bir süreç oluşturmaya göre daha az kaynak (zaman ve bellek) gerektirir.
  • Paralel/rekabetçi yürütme: İş parçaları, çok çekirdekli işlemcilerde paralellik veya tek çekirdekli işlemcilerde rekabet sağlar.
  • Yarış durumu riski: İş parçaları belleği paylaştığı için, ortak verilere aynı anda erişimde çatışma riski vardır. Senkronizasyon mekanizmaları (mutexler, semaforlar) gereklidir.

Flutter'da, UI kodunun tek iş parçacıklı yürütme modeli kullanılır; burada ana iş parçacığı (UI thread) tüm çizim, giriş olayları ve animasyonları işler. Ağır hesaplamalar, kendi belleğine sahip bağımsız süreçler olan izolalar (isolates) içinde gerçekleştirilir ve mesaj portları aracılığıyla etkileşir.

// Flutter'da ağır hesaplamalar yapmak için ayrı bir izolanın nasıl oluşturulacağına örnek
import 'dart:isolate';

Future<void> heavyComputation(SendPort sendPort) async {
  // Hesaplamalar...
  int result = 0;
  for (int i = 0; i < 1000000000; i++) {
    result += i;
  }
  sendPort.send(result); // Sonucu geri gönder
}

void main() async {
  final receivePort = ReceivePort();
  // İzolat oluşturma ve sonuç göndermek için portu iletme
  await Isolate.spawn(heavyComputation, receivePort.sendPort);

  receivePort.listen((message) {
    print('Hesaplama tamamlandı, sonuç: $message');
    receivePort.close(); // Sonuç alındıktan sonra portu kapat
  });

  print('Ayrı bir izolat içinde hesaplama başlatıldı...');
}

Prosesler ve iş parçacıkları arasındaki farklar:

Özellik Proses İş Parçası
Adres alanı Her proses için bağımsız Aynı proses içindeki iş parçacıkları arasında paylaşılır
Kaynaklar Farklı Paylaşılan
Oluşturma Maliyetli (yüksek maliyetli) Uygun (daha düşük maliyetli)
İletişim Daha karmaşık (IPC - İşlem içi iletişim) Daha basit (paylaşılan belleğe erişim)
Hata toleransı Bir prosesin çökmesi diğerlerini etkilemez Bir iş parçacığının çökmesi, proses üzerinde etkili olabilir