QThreads против Pthreads - PullRequest
       6

QThreads против Pthreads

8 голосов
/ 10 ноября 2010

У меня быстрый вопрос. Я должен создать небольшую многопоточную программу для сбора данных с нескольких датчиков, и у меня есть знания как по pthreads, так и по qthreads. У меня есть доступ к обеим библиотекам. лично я склонен к использованию Qt из-за его дизайна и различных функциональных возможностей. Но есть ли существенное преимущество в использовании одного против другого? Спасибо

Ответы [ 3 ]

8 голосов
/ 10 ноября 2010

QПотоки построены на основе нитей.Они предоставляют объектно-ориентированную абстракцию, облегчая работу с потоками.Помимо того, что QThreads являются переносимыми, они могут работать в любой системе, использующей базовую систему потоков, в то время как pthreads являются специфическими для систем POSIX.

Практически единственным недостатком использования QThreads является то, что вам необходимо связать свое приложение сQt;эта зависимость может усложнить распространение вашего приложения.

4 голосов
/ 27 сентября 2011

Но вы должны знать, что QThreads использует цикл событий для управления им, поэтому вы не можете просто уничтожить поток, как с помощью pthread. Если потоки выполняют долгую и тяжелую работу, остановить ее невозможно, пока она не будет освобождена. В некоторых случаях это важно.

2 голосов
/ 10 ноября 2010

Я думаю, что в основе вещей QThread под Linux используется pthread. Я не уверен, что под капотом для стороны Windows этого. Если вам не нужны какие-то конкретные функции API pthread, которые не доступны с QThread, я бы остановился на QThread просто для того, чтобы воспользоваться преимуществами переносимости, которые он вам даст. Я не ожидал, что будет существенная разница в производительности. Qthread также позволит вам использовать механизм сигнала / слота через границы потоков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...