Sobes.tech
Junior — Middle

İzolətsiyalar kontekstində ötürmə zamanı hansı məlumat növlərindən istifadə etmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Flutter-da, izolyatlar (isolates) arasında məlumatların ötürülməsi zamanı yalnız serializasiya edilə bilən və axınlar arasında təhlükəsiz olan məlumat tiplərindən istifadə etmək mümkündür.

İzolatlar kontekstində ötürülə bilən əsas məlumat tipləri:

  • Əsas tiplər: int, double, bool, String
  • Yuxarıda qeyd olunan əsas tipləri ehtiva edən siyahılar və xəritələr (məsələn, List<int>, Map<String, dynamic>)
  • Mesaj mübadiləsi üçün SendPortReceivePort tətbiq edən obyektlər

Kontekstdən asılı vəziyyətdə olan obyektləri (məsələn, widgetlər, nəzarətçilər, UI-ə istinadlar) ötürmək mümkün deyil, çünki izolyatlar yaddaşı paylaşmır.

Mesaj göndərmə nümunəsi:

// Əsas izolyatda
final receivePort = ReceivePort();
Isolate.spawn(isolateEntry, receivePort.sendPort);

receivePort.listen((message) {
  print('Alınmış: $message');
});

// İzolyatda
void isolateEntry(SendPort sendPort) {
  sendPort.send('Salam izolyatdan');
}

Bu səbəbdən, izolyatlar arasında məlumatların ötürülməsi üçün sadə serializasiya edilə bilən tiplər və mesaj portlarından istifadə etmək lazımdır.