Créer des isolates et transmettre des messages
Communiquer via SendPort et ReceivePort
Créer des isolates et transmettre des messages est une leçon Dart Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Dart Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Dart Academy comprend 4 leçons au total.
Passer au mode manuel
Pour les travailleurs qui restent actifs longtemps et échangent beaucoup, vous créez vous-même un isolate avec Isolate.spawn. Vous contrôlez ainsi toute sa durée de vie.
Le point d’entrée
Isolate.spawn a besoin d’une fonction de niveau supérieur comme point d’entrée, ainsi que d’un argument à lui envoyer au démarrage.
Isolate.spawn(worker, message);Découvrez ReceivePort
Un ReceivePort est votre boîte aux lettres. Vous l’écoutez pour recevoir les messages que d’autres isolates vous envoient. 📥
final port = ReceivePort();
port.listen((msg) => print(msg));Découvrez SendPort
Chaque ReceivePort expose un SendPort. Toute personne qui détient ce SendPort peut déposer des messages dans votre boîte aux lettres.
final SendPort tx = port.sendPort;Transmettre un port
Pour commencer à échanger, donnez au nouvel isolate un SendPort comme argument de création. Il saura ainsi où répondre.
Isolate.spawn(worker, port.sendPort);Le travailleur répond
Dans le worker, utilisez le SendPort reçu pour send les résultats à l’isolate principal.
void worker(SendPort tx) {
tx.send('done');
}La poignée de main
Un schéma courant est la poignée de main bidirectionnelle : le worker renvoie d’abord son propre SendPort afin que les deux côtés puissent communiquer.
Uniquement des données transmissibles
Les messages doivent être transmissibles : nombres, chaînes, listes, maps et SendPorts. Les fichiers ouverts ou les fonctions, par exemple, ne peuvent pas franchir la frontière.
Lire les réponses
De retour dans le programme principal, le rappel listen de votre ReceivePort se déclenche pour chaque réponse. Traitez-les à leur arrivée, dans l’ordre.
Fermer le port
Lorsque vous avez terminé, appelez port.close(). Un ReceivePort ouvert maintient votre programme en vie : le fermer permet donc de quitter proprement.
Arrêter un isolate
Conservez la référence de l’isolate et appelez isolate.kill() pour arrêter un worker dont vous n’avez plus besoin. Libérez rapidement ses ressources.
Vérification rapide
Sur quel port devez-vous écouter pour recevoir des messages ?
Récapitulatif
Créez l’isolate avec Isolate.spawn, puis transmettez un SendPort pour que les isolates puissent communiquer. N’envoyez que des données transmissibles et fermez les ports lorsque vous avez terminé. ✅
Apprends Dart avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 30
- Leçons
- 120
Questions Fréquemment Posées
La leçon « Créer des isolates et transmettre des messages » est-elle gratuite ?
Oui — le texte complet de « Créer des isolates et transmettre des messages » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Dart Academy, passe à CoddyKit PRO. Le cours Dart Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Créer des isolates et transmettre des messages » ?
Communiquer via SendPort et ReceivePort Tu pratiques Dart Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Dart Academy ?
Aucune expérience préalable n'est requise. Dart Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « Créer des isolates et transmettre des messages » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Dart Academy ?
Oui. Chaque leçon Dart Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Pourquoi des isolates plutôt que des threads
- Isolate.run pour déléguer rapidement
- Créer des isolates et transmettre des messages
- Tâches gourmandes en calcul sans saccades