РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
699 of 723 menu

Метод spawn класса Isolate

Метод spawn класса Isolate создает и запускает новый изолят. Изоляты в Dart - это независимые единицы выполнения, каждая из которых имеет собственную память и не разделяет изменяемое состояние с другими изолятами. В первый параметр мы передаем entryPoint - функцию, которая будет выполнена в новом изоляте. Во второй параметр мы передаем message - начальные данные, которые будут отправлены в изолят. Метод возвращает объект Future, который завершается объектом Isolate после создания изолята.

Синтаксис

Isolate.spawn(entryPoint, message)

Пример

Давайте создадим изолят, который выведет переданное ему сообщение:

import 'dart:isolate'; void isolateFunction(String message) { print('Isolate received: $message'); } void main() async { await Isolate.spawn(isolateFunction, 'abcde'); }

Результат выполнения кода:

"Isolate received: abcde"

Пример

Давайте создадим изолят и получим объект Isolate для дальнейшего управления им:

import 'dart:isolate'; void isolateFunction(int number) { print('Number: $number'); } void main() async { Isolate isolate = await Isolate.spawn(isolateFunction, 12345); print('Isolate created: $isolate'); }

Результат выполнения кода:

"Number: 12345" "Isolate created: Instance of 'Isolate'"

Пример

Давайте создадим изолят, который выполнит вычисления и завершится:

import 'dart:isolate'; void computeFunction(int value) { int res = value * 2; print('Result: $res'); } void main() async { Isolate isolate = await Isolate.spawn(computeFunction, 5); print('Isolate is running'); }

Результат выполнения кода:

"Isolate is running" "Result: 10"

Смотрите также

  • класс Isolate,
    который представляет изолят
  • метод exit,
    который завершает работу изолята
  • класс ReceivePort,
    который принимает сообщения от изолятов
  • класс SendPort,
    который отправляет сообщения в изолят
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить