Bisher hatte ich immer POSIX-Threads benutzt. Bei C++ stößt man damit allerdings schnell auf Probleme. Da ich meine GUI eigentlich immer mit Qt erstelle, habe ich auch schon öfters die QThreads benutzt. Allerdings habe ich jetzt das Problem, dass ich die Qt-Threads nicht einsetzen kann. Deshalb die Frage: Was könnt ihr mir empfehlen? Ich möchte keine „Exoten“ benutzen sollten schon etablierte Sachen sein. Außerdem währe es ganz nett, wenn die Threads auch unter Windows funktionieren würden. Das ist aber nicht entscheidend. Was haltet ihr von den Threads der Boost Library. Oder sollte ich besser OpenMP oder MPI einsetzen etc.
Bitte speist mich nicht mit einer Antwort aller, ich benutze dies und das ab. Würde gerne etwas pro und contra hören und vielleicht für welche zwecke sich was besser eignet.
Ich danke! -- Ich bin faul und mein Computer ist schnell!
Also ich würde mal sagen das, dass bis auf das Klassendesign keinen Unterschied macht da hier eigentlich normalerweise eh nur die Threads des BS gewrappt werden. User Level Threads würde ich aber in den meisten Fällen eh nicht verwenden. Grundsätzlich ist es für die Portabilität aber besser eine Bibliothek wie QT oder Boost zu benutzen.
Boost ist eigentlich immer gut. Prinzipiell ist das schöne an boost.threads, dass es 1. portabel 2. schön sauber und 3. ganz wichtig, sehr umfassend ist. Du kannst damit nicht nur Threads erstellen, sondern hast auch nen Haufen verschiedener Mutex- und Lock-Konzepte mit drin. Davon ab wird boost generell als eine Art Schattenstandard angesehen.
Auf der anderen Seite sind mir OpenMP und MPI nicht bekannt, von daher kann ich keinen Vergleich anstellen. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra
Ich habe mich mal gerade etwas über MPI schlau gemacht, und bin zu dem Ergebnis gekommen, dass es doch etwas zu viel für meine Zwecke ist. OpenMP setzt auf Pthreads auf, deshalb lasse ich das auch. Also bleibt im Moment nur Boost was soweit ich das jetzt schon beurteilen kann wirklich nett ist. Aber die Praxis muss es erst noch zeigen. Werde es jetzt etwas genauer unter die Lupe nehmen. -- Ich bin faul und mein Computer ist schnell!