Sobes.tech
Junior — Middle

Dartта параллелизм жана асинхрондуулукту колдоо кандай ишке ашырылат?

sobes.tech AI

AIден жооп

Dart'ta paralelizm men asinxronnostu kollashu ushin birneşe əsas mexanizmler vasitəsilə həyata keçirilir:

  • Future — bir obyekt, ki, asinxron əməliyyatın nəticəsini təmsil edir və gələcəkdə mövcud olacaq. async/await istifadə etməklə asinxron kod yazmağa imkan verir.

  • async/await — sintaktik şəkər, Future ilə işləmək üçün, asinxron kodu yazmağa imkan verir, sanki sinxron kod kimi.

  • Stream — asinxron hadisələr və ya məlumatların ardıcıllığı, onları dinləmək və işləmək üçün.

  • Isolates — öz yaddaşına malik olan ayrı icra axınları, paylaşılan vəziyyət olmadan paralel hesablamalar aparmağa imkan verir.

Future və async/await istifadə nümunəsi:

Future<String> fetchData() async {
  await Future.delayed(Duration(seconds: 2));
  return 'Məlumatlar yükləndi';
}

void main() async {
  print('Yükləmə başlayır');
  String data = await fetchData();
  print(data);
}

Isolates ilə paralellik üçün, ayrı izolatorlar yaradılır və onlar mesajlar mübadiləsi edir, bu da çoxprosessorluq imkanlarından səmərəli istifadə etməyə və ip təhlükəsizliyi problemləri olmadan işləməyə imkan verir.