Sobes.tech
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-га мўлжалланган вазифалар учун самаралидир.