Junior — Middle
Peut-on utiliser la multitâche en Dart pour le traitement parallèle des tâches?
sobes.tech IA
Réponse de l'IA
En Dart, la multitâche est réalisée via le mécanisme des "Isolates" — des threads isolés avec leur propre mémoire. Ils permettent d'exécuter des tâches en parallèle, mais ne partagent pas la mémoire directement, ce qui évite les problèmes de synchronisation.
Pour le traitement parallèle des tâches, de nouveaux Isolates sont créés, entre lesquels des échanges de messages ont lieu.
Exemple de création d'un Isolate :
import 'dart:isolate';
void task(SendPort sendPort) {
// Une tâche lourde
int result = 0;
for (int i = 0; i < 1000000; i++) {
result += i;
}
sendPort.send(result);
}
void main() async {
ReceivePort receivePort = ReceivePort();
await Isolate.spawn(task, receivePort.sendPort);
receivePort.listen((message) {
print('Résultat : $message');
receivePort.close();
});
}
Ainsi, en Dart, il est possible d'utiliser le traitement parallèle avec les Isolates, ce qui est efficace pour les tâches intensives en CPU.