Threading and Concurrent Programming Examples

Qt makes it easy to write multithreaded applications. Signals and slots can be used to safely communicate between threads in your application.

Mandelbrot

Mandelbrot example demonstrates multi-thread programming using Qt. It shows how to use a worker thread to perform heavy computations without blocking the main thread's event loop

Producer and Consumer using Semaphores

Producer and Consumer using Semaphores example shows how to use QSemaphore to control access to a circular buffer shared by a producer thread and a consumer thread

Producer and Consumer using Wait Conditions

Producer and Consumer using Wait Conditions example shows how to use QWaitCondition and QMutex to control access to a circular buffer shared by a producer thread and a consumer thread

Queued Custom Type

Queued Custom Type example shows how to send custom types between threads with queued signals and slots

The QtConcurrent namespace includes a collection of classes and functions for straightforward concurrent programming.

These examples show how to apply the basic techniques of concurrent programming to simple problems.

Image Scaling

Demonstrates how to asynchronously download and scale images

Prime Counter

Demonstrates how to monitor the progress of concurrent operations

Word Count

Demonstrates how to use the map-reduce algorithm