Sobes.tech
Junior — Middle

Dartda parallelizm va asinxronlikni qo'llab-quvvatlash qanday amalga oshiriladi?

sobes.tech AI

AIdan javob

In Dart, qoʻshma va asinxronlikni qoʻllab-quvvatlash bir nechta asosiy mexanizmlar orqali amalga oshiriladi:

  • Future — asinxron operatsiyaning natijasini ifodalovchi obyekt, kelajakda mavjud boʻladi. async/await yordamida asinxron kod yozishga imkon beradi.

  • async/await — Future bilan ishlashni qulaylashtiradigan sintaktik shakar, sinxronga oʻxshash asinxron kod yozishga imkon beradi.

  • Stream — kelayotgan vaqtda tinglash va ishlash mumkin boʻlgan asinxron voqealar yoki maʼlumotlar ketma-ketligi.

  • Isolates — oʻz xotirasiga ega boʻlgan alohida bajarish oqimlari, ular yordamida umumiy holat bo‘lmagan paralel hisoblashlar amalga oshiriladi.

Future va async/awaitdan foydalanish misoli:

Future<String> fetchData() async {
  await Future.delayed(Duration(seconds: 2));
  return 'Maʼlumotlar yuklandi';
}

void main() async {
  print('Yuklash boshlanmoqda');
  String data = await fetchData();
  print(data);
}

Isolates yordamida paralellik uchun, alohida izolatlar yaratiladi va ular xabarlar almashadi, bu esa ko‘p protsessorli imkoniyatlardan samarali foydalanishni taʼminlaydi va ip xavfsizligi muammolarisiz ishlash imkonini beradi.