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/awaityordamida 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.