Практика изолятов в Dart
Запустите изолят, который сразу шлет строку
"ok". Выведите сообщение и закройте
порт приема.
Сделайте обмен: основной изолят отправляет
строку "data", второй возвращает ее
без изменений. Выведите ответ.
Передайте список из порта ответа и строки
"line". Второй изолят должен вернуть
длину строки. Выведите число.
Дан следующий код:
import 'dart:isolate';
void main() async {
var receive = ReceivePort();
await Isolate.spawn(entry, receive.sendPort);
}
void entry(SendPort mainSend) {
var inbox = ReceivePort();
mainSend.send(inbox.sendPort);
inbox.listen((message) {});
}
Допишите программу: отправьте строку "xy"
с портом для ответа, верните сумму
codeUnitAt по обоим символам и
выведите результат.
Запустите два последовательных обмена с одной
точкой входа: сначала строка "a" и ответ
1, затем строка "bc" и ответ
2. Выведите оба числа.
Дан следующий код:
import 'dart:isolate';
void main() async {
var receive = ReceivePort();
await Isolate.spawn(worker, receive.sendPort);
var replyPort = ReceivePort();
}
void worker(SendPort mainSend) {
var inbox = ReceivePort();
mainSend.send(inbox.sendPort);
inbox.listen((message) {
if (message is List) {
var reply = message[0] as SendPort;
var text = message[1] as String;
}
});
}
Завершите обмен: отправьте список с
replyPort.sendPort и строкой "dart",
верните длину строки, выведите число и
закройте оба порта приема.