Sur cette page

Nombre de mots

Illustre l'utilisation de l'algorithme MapReduce.

L'exemple « Qt Concurrent: Word Count » illustre l'utilisation de l'algorithme Map-Reduce appliqué au problème du comptage des mots dans un ensemble de fichiers.

Tout d'abord, l'application lance une boîte de dialogue QFileDialog pour sélectionner un chemin d'accès de départ, puis affiche le résultat sur la console.

Exécution de l'exemple

Vous pouvez exécuter l'exemple à partir de :

Comparaison des opérations

Comparez une approche séquentielle à thread unique pour compter les mots dans les fichiers texte à une approche multithread utilisant `mappedReduced()` :

    ...
    WordCount total = singleThreadedWordCount(files);
    ...
    WordCount total = QtConcurrent::mappedReduced(files, countWords, reduce).result();
    ...

Le premier argument de la fonction ` mappedReduced ` est le conteneur sur lequel porter l’opération. Le deuxième argument est la fonction de mappage countWords(). Elle est appelée en parallèle par plusieurs threads. Le troisième argument est la fonction de réduction reduce(). Elle est appelée une fois pour chaque résultat renvoyé par la fonction de mappage et génère le résultat final du calcul.

La fonction renvoie un objet « QFuture » de type WordCount. Appelez immédiatement la fonction result sur ce QFuture afin de bloquer la suite de l’exécution jusqu’à ce que le résultat soit disponible.

Remarque : la fonction de mappage doit être thread-safe, car elle est appelée depuis plusieurs threads.

Exemple de projet sur code.qt.io

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.