QThread are not so difficult to use for parallelization once you’ve understood how to use it
I’ve used it for BuliCommander:
- Doing analysis of ~10000 files (~80GiB) took a couple of seconds (analysis read all files size, image dimension, hash calculation, …)
- Generating thumbnails (512, 256, 128 and 64px size thumbnail for each file) is a little bit longer (between ~50s and ~300s according to computer activity to generate 40000 thumbnails from 80GiB images – tested from a SSD, running with 24thread)
- Use of threads allow to keep ui responsive while computer is doing intensive computation
- Also load thumbnails asynchronously in treeview to keep ui responsive
But the thing for performance is not only the use of multithreading, you have to generate a cache and use it.
Once cache is generated, it took around ~1.2s to load 10000files thumbnails in a treeview
Example:
If you"re interested, you can take a look on WorkerPool class I’ve wrote to simplify my use of parallelization jobs
Grum999