En esta página

Recuento de palabras

Demuestra cómo utilizar el algoritmo map-reduce.

El ejemplo Qt Concurrent Word Count demuestra el uso del algoritmo map-reduce cuando se aplica al problema de contar palabras en una colección de archivos.

Primero, la Aplicación inicia un QFileDialog para seleccionar una ruta de inicio, y luego imprime la salida en la consola.

Ejecutar el ejemplo

Para ejecutar el ejemplo desde Qt Creatorabra el modo Welcome y seleccione el ejemplo de Examples. Para más información, ver Qt Creator: Tutorial: Construir y ejecutar.

Comparación de las operaciones

Compare un enfoque secuencial de un solo hilo para contar las palabras en los archivos de texto con un enfoque multihilo con mappedReduced():

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

El primer argumento de la función mappedReduced es el contenedor sobre el que se va a operar. El segundo argumento es la función de mapeo countWords(). Es llamada en paralelo por varios subprocesos. El tercer argumento es la función reductora reduce(). Se llama una vez por cada resultado devuelto por la función de asignación y genera el resultado final del cálculo.

La función devuelve un objeto QFuture de tipo WordCount. Llame a la función result inmediatamente en este QFuture para bloquear la ejecución posterior hasta que el resultado esté disponible.

Nota: La función de mapeo debe ser thread-safe ya que es llamada desde múltiples threads.

Proyecto de ejemplo @ 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.