Ich habe eine kurze Frage. Ich soll ein kleines Multithread-Programm erstellen, um Daten von mehreren Sensoren zu erfassen, und ich habe Kenntnisse sowohl von Pthreads und qthreads. Ich habe Zugriff auf beide Bibliotheken. persönlich bin ich voreingenommen gegenüber Qt wegen seines Designs und verschiedener Funktionalitäten. Aber gibt es einen signifikanten Vorteil bei der Verwendung von einem gegen den anderen? Danke
QThreads sind auf Pthreads aufgebaut. Sie bieten eine objektorientierte Abstraktion, die das Arbeiten mit Threads erleichtert. Abgesehen davon, dass QThreads portabel sind, können sie auf jedem System laufen, das das zugrundeliegende Thread-System verwendet, während PThreads spezifisch für POSIX-Systeme sind.
Der fast einzige Nachteil der Verwendung von QThreads besteht darin, dass Sie Ihre Anwendung mit Qt verknüpfen müssen; Diese Abhängigkeit könnte die Verteilung Ihrer Anwendung ein wenig erschweren.
Aber Sie müssen wissen, was QThreads verwenden, um eine Schleife zu verwalten, damit Sie nicht einfach Thread wie mit Pthread beenden können. Wenn Threads lange und hart arbeiten, ist es nicht möglich, sie zu stoppen, solange sie nicht freigegeben werden. In einigen Fällen ist es wichtig.
Ich denke, im Kern der Dinge verwendet QThread
unter Linux pthread
. Ich bin nicht sicher, was für die Windows-Seite unter der Haube ist. Es sei denn, es gibt einige spezielle pthread
API-Funktionen, die nicht mit QThread
verfügbar sind, würde ich bei QThread
bleiben, nur um von der Portabilität zu profitieren, die es Ihnen geben wird. Ich würde nicht erwarten, dass es einen signifikanten Leistungsunterschied geben würde. Qthread
ermöglicht es Ihnen auch, den Signal / Slot-Mechanismus über Thread-Grenzen hinweg zu verwenden.