Accueil
Rechercher:
sur developpez.com sur les forums
Forums | Tutoriels | F.A.Q's | Participez | Hébergement | Contacts
Accueil Conception Java DotNET Visual Basic  C  C++ Delphi MS-Office SQL & SGBD Oracle  4D  Business Intelligence
Club Emploi Blogs   TV   Dév. Web PHP XML Python Autres 2D-3D-Jeux Sécurité Windows Linux PC Mac
ACCUEIL Qt FORUM Qt FAQ Qt TUTORIELS Qt LIVRES Qt BLOG Qt Qt TV

Trolltech DevDays 2006 : Multi-Threading sous Qt4

Date de publication : 01/11/2006

Multithreading avec Qt, résumé de la conférence de Bradley Hughes lors des Trolltech DevDays 2006.

I. Qui est Bradley Hughes ?
II. Résumé de la présentation
III. Conclusion


I. Qui est Bradley Hughes ?

Bradley Hughes est le responsable du développement cross-platforme de la base de Qt.


II. Résumé de la présentation

Tout d'abord, il faut considérer le support des threads dans Qt4 comme l'évolution de Qt3, lui-même écolution de Qt2.

QThread, la classe de base de support des threads, dispose maintenant de 3 signaux - finished, started, terminated - et d'un slot supplémentaire - quit -. Ces fonctions permettent d'indiquer la fin d'un thread, par exemple. C'est possible car les signaux et slots sont enfin thread-safe.

Naturellement, il existe une classe de mutex, QMutex, ainsi que QReadWriteLock permettant de créer un mutex sensible à un accès en lecture ou en écriture. Pour simplifier l'écriture, il existe des objets bloqueurs, comme QMutexLocker ou QReadLocker et QWriteLocker. De plus, il est possible d'endormir un thread à l'aide de QWaitCondition et de le réveiller à l'aide de l'appel à wakeOne ou wakeAll. Une nouvelle classe de sémaphore est proposée, QSemaphore.

QThreadStorage permet aussi de stocker pour un thread et de manière transparente pour n'importe quel thread, un espace de stockage unique par thread.

Depuis Qt4.0, on peut utiliser les signaux et les slots entre threads. En fait, il est possible de poster des évènements entre le sthreads, et c'est ainsi que les signaux/slots fonctionnent. Par défaut, la connexion se fait par messages entre les threads, et directement dans un même thread. Ensuite, il est possible de forcer la connexion directe - comme dans Qt3 - ou par message. Pour des messages avec des paramètres particuliers, il faut enregistrer les types à l'aide de QMetaType.


III. Conclusion

Le support du multithreading a été largement amélioré depuis la version 3 de Qt, et est mieux conçu que d'autres bibliothèques - par exemple Boost -. Il reste encore des changements à effectuer, comme le support de boîtes de dialogues dans les threads non GUI. Pour plus de détails, veuillez consulter cette page.



Valid XHTML 1.1!Valid CSS!

Copyright © 2006 Matthieu Brucher. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.

Responsable bénévole de la rubrique Qt : Alp Mestan - Contacter par EMail :
Vos questions techniques : forum d'entraide Qt - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Copyright © 2000-2008 www.developpez.com - Legal informations.