[Development] Evolving Qt's multithreading API

Sze Howe Koh szehowe.koh at gmail.com
Wed Feb 20 15:45:21 CET 2013

Hi all,

Some time ago there was some talk about improving Qt's multithreading
API. I'm summarizing them here to stop them from fading into
obscurity, and to see if there's any interest in following them up.

Here are the tasks mentioned:
- Replace/Rewrite QtConcurrent [2]
- Create/Find a good API to replace QtConcurrent::run() for "one-shot" tasks [1]
- Find a third-party solution for high-level multithreading [2]
- Find more uses for QFuture, outside of QtConcurrent [3]
- Influence C++1y by creating a nice multithreading API [4]

Some suggestions were raised:
- Put a Qt-ish wrapper around TBB [1]
- Integrate ThreadWeaver back into Qt? [2]

Separately, someone was experimenting with ways to spawn a QObject in
a secondary thread, without first constructing it in the current
thread [5]

Do you think any of these avenues are worth pursuing?

I've had a quick look at TBB vs. ThreadWeaver. The latter specializes
in task-oriented programming, while TBB is a more swiss-army-knife
toolkit, which includes container-based operations similar to
QtConcurrent. So, if we're to integrate 3rd-party option into Qt, TBB
would be more worth it (although it'd involve more work too)


[1] http://lists.qt-project.org/pipermail/development/2012-November/007901.html
[2] http://lists.qt-project.org/pipermail/development/2012-November/007921.html
[3] http://lists.qt-project.org/pipermail/development/2012-November/007944.html
[4] http://lists.qt-project.org/pipermail/development/2012-November/007933.html
[5] http://lists.qt-project.org/pipermail/interest/2013-January/005740.html

More information about the Development mailing list