Dart Academy · Leçon

Créer des isolates et transmettre des messages

Communiquer via SendPort et ReceivePort

Leçon 3 sur 413 étapes

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é. ✅

Gratuit pour commencer

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

  1. Pourquoi des isolates plutôt que des threads
  2. Isolate.run pour déléguer rapidement
  3. Créer des isolates et transmettre des messages
  4. Tâches gourmandes en calcul sans saccades
← Retour à Dart Academy