Junior — Middle
Dart çoklu görev yürütmeyi mi destekliyor yoksa sadece tek bir iş parçacığında mı çalışıyor?
sobes.tech yapay zeka
AI'dan gelen yanıt
Dart поддерживает параллельное выполнение задач, но не через классические потоки, как в Java или C++. Вместо этого используется модель изолятов (Isolates) — это отдельные потоки с собственным пространством памяти, которые не разделяют состояние напрямую. Для обмена данными между изолятами применяются сообщения.
Таким образом, Dart работает с одним основным потоком (UI-потоком в Flutter), но для выполнения тяжёлых или параллельных задач можно создавать изоляты, которые выполняются параллельно и не блокируют основной поток.
Пример создания изолята:
import 'dart:isolate';
void heavyTask(SendPort sendPort) {
// Выполнение тяжёлой задачи
int result = 0;
for (int i = 0; i < 100000000; i++) {
result += i;
}
sendPort.send(result);
}
void main() async {
ReceivePort receivePort = ReceivePort();
await Isolate.spawn(heavyTask, receivePort.sendPort);
receivePort.listen((message) {
print('Результат из изолята: $message');
receivePort.close();
});
}