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.