Junior — Middle
Оё имкон дорад, ки дар Dart бисёрсоҳавӣ барои коркарди ҳамзамоншудаи вазифаҳо истифода шавад?
sobes.tech AI
Ҷавоб аз AI
Дартида, бисёрсоҳавий ишлаш "Isolates" механизми орқали амалга оширилади — алоҳида изолатланган жиплар ўз ёдгорлиги билан. Улар вазифаларни параллел равишда бажаришга имкон беради, аммо ёдгорликни тўғридан-тўғри бўлишмайди, бу синхронлаштириш муаммоларини олдини олади.
Вазифаларни параллел ишлаш учун янги Isolates яратилади, улар орасида хабарлар алмашинуви амалга оширилади.
Isolate яратишнинг намунаси:
import 'dart:isolate';
void task(SendPort sendPort) {
// Бир оғир вазифа
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('Натижа: $message');
receivePort.close();
});
}
Шу тарзда, Dartда Isolates ёрдамида параллел ишлаш мумкин, бу CPU-га мўлжалланган вазифалар учун самаралидир.