Junior — Middle
Does Dart support parallel task execution?
sobes.tech AI
Answer from AI
Dart does not have full support for parallel thread execution within a single isolate — code runs in a single thread. However, Dart supports asynchronous programming using async/await and Future, which allows tasks to be performed efficiently without blocking the main thread.
For true parallelism in Dart, isolates are used — separate threads with their own memory and event loop. Isolates do not share memory, so data exchange is done via message passing.
Example of creating an isolate:
import 'dart:isolate';
void isolateFunction(SendPort sendPort) {
// Perform heavy task
int result = 0;
for (int i = 0; i < 1000000; i++) {
result += i;
}
sendPort.send(result);
}
void main() async {
ReceivePort receivePort = ReceivePort();
await Isolate.spawn(isolateFunction, receivePort.sendPort);
receivePort.listen((message) {
print('Result from isolate: $message');
receivePort.close();
});
}
Thus, parallel execution in Dart is achieved through isolates, and asynchrony — through Future and async/await.