Sobes.tech
Junior — Middle

Кадом воситаҳо ва китобхонаҳо барои иҷрои бисёркорӣ дар Dart дастрасанд?

sobes.tech AI

Ҷавоб аз AI

Дар Dart дастрас васила барои амалӣ кардани бисёркорӣ ва иҷрои параллелӣ дар бар мегиранд:

  • Isolates — асосии механизм барои иҷрои параллелии коди. Ҳар як isolate дорои хотираи худ мебошад ва ҳолатро бо дигарон тақсим намекунад, ки ин мушкилоти дастрасии ҳамзамонро пешгирӣ мекунад. Барои мубодилаи маълумот паёмҳо истифода мешаванд.

  • Future ва async/await — имкон медиҳанд, ки амалиётҳои асинхронӣ бидуни бастани ҷараёни асосӣ иҷро шаванд, аммо ҷараёнҳои нав намесозанд.

  • Streams — барои коркарди пайдарпайии рӯйдодҳои асинхронӣ.

Масалан, сохтани ва муоширати бо isolate:

import 'dart:isolate';

void isolateEntry(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(isolateEntry, receivePort.sendPort);

  receivePort.listen((message) {
    print('Натиҷаи аз isolate: $message');
    receivePort.close();
  });
}

Аз ин рӯ, дар Dart барои ҳисобҳои вазнин ва вазифаҳои параллелӣ isolates истифода мешаванд, ва барои амалиётҳои асинхронӣ — Future ва Streams.