Sobes.tech
Junior — Middle

Dartda ko'p oqimli ishlashni amalga oshirish uchun qanday vositalar va kutubxonalar mavjud?

sobes.tech AI

AIdan javob

Dartda ko‘p ishli va parallel bajarish uchun quyidagi vositalar mavjud:

  • Isolates — kodning parallel bajarilishi uchun asosiy mexanizm. Har bir isolate o‘z xotirasiga ega va boshqalar bilan holatni bo‘lishmaydi, bu esa raqobatli kirishni oldini oladi. Ma’lumot almashish uchun xabarlar ishlatiladi.

  • Future va async/await — asosiy oqimni bloklamasdan asinxron operatsiyalarni bajarishga imkon beradi, lekin yangi oqimlar yaratmaydi.

  • Streams — asinxron voqealar ketma-ketligini ishlash uchun.

Isolate yaratish va muloqot qilish misoli:

import 'dart:isolate';

void isolateEntry(SendPort sendPort) {
  // Og‘ir vazifani bajarish
  int result = 0;
  for (int i = 0; i < 1000000; i++) {
    result += i;
  }
  sendPort.send(result);
}

void main() async {
  ReceivePort receivePort = ReceivePort();
  await Isolate.spawn(isolateEntry, receivePort.sendPort);

  receivePort.listen((message) {
    print('Isolattan natija: $message');
    receivePort.close();
  });
}

Shunday qilib, Dartda og‘ir hisoblashlar va parallel vazifalar uchun isolates, asinxron operatsiyalar uchun esa Future va Streams ishlatiladi.