Junior — Middle
Dartта көптөгөн ишти колдонуп, тапшырмаларды параллелдүү иштетүү мүмкүнбү?
sobes.tech AI
AIден жооп
Dart'ta köp oqimliklik "Isolates" mexanizmi vasitəsilə həyata keçirilir — öz yaddaşına malik izolyasiya olunmuş iş parçaları. Onlar tapşırıqları paralel şəkildə yerinə yetirməyə imkan verir, lakin yaddaşı birbaşa paylaşmırlar, bu da sinxronizasiya problemlərini qarşısını alır.
Tapşırıqların paralel işlənməsi üçün yeni Isolates yaradılır və aralarında mesaj mübadiləsi həyata keçirilir.
Isolate yaradılmasının nümunəsi:
import 'dart:isolate';
void task(SendPort sendPort) {
// Bir ağır tapşırıq
int result = 0;
for (int i = 0; i < 1000000; i++) {
result += i;
}
sendPort.send(result);
}
void main() async {
ReceivePort receivePort = ReceivePort();
await Isolate.spawn(task, receivePort.sendPort);
receivePort.listen((message) {
print('Nəticə: $message');
receivePort.close();
});
}
Beləliklə, Dart-da Isolates vasitəsilə paralel işləmə istifadə etmək mümkündür, bu isə CPU-şiddətli tapşırıqlar üçün effektivdir.