Warning
This section contains snippets that were automatically translated from C++ to Python and may contain errors.
Word Count#
Demonstrates how to use the map-reduce algorithm.
The Qt Concurrent Word Count example demonstrates the use of the map-reduce algorithm when applied to the problem of counting words in a collection of files.
First, the Application starts a QFileDialog to select a starting path, and then prints the output to the console.
Running the Example#
To run the example from Qt Creator, open the Welcome mode and select the example from Examples. For more information, visit Building and Running an Example.
Comparing the operations#
Compare a single-threaded, sequential approach to counting the words in the text files to a multithreaded approach with mappedReduced():
... total = singleThreadedWordCount(files) ... total = QtConcurrent.mappedReduced(files, countWords, reduce).result() ...
The first argument to the mappedReduced
function is the container to operate on. The second argument is the mapping function countWords()
. It is called in parallel by multiple threads. The third argument is the reducing function reduce()
. It is called once for each result returned by the mapping function, and generates the final computation result.
The function returns a QFuture object of type WordCount
. Call the result function immediately on this QFuture to block further execution until the result becomes available.
Note
The mapping function must be thread-safe since it is called from multiple threads.