QThreads与Pthreads

时间:2010-11-10 00:35:58

标签: qt pthreads

我有一个简单的问题。我应该创建一个小型多线程程序来从多个传感器中获取数据,并且我知道pthreads和qthreads。我可以访问这两个库。我个人偏向于使用Qt,因为它的设计和各种功能。但是使用一个与另一个有明显的优势吗? 感谢

3 个答案:

答案 0 :(得分:8)

QThreads建立在pthreads之上。它们提供了面向对象的抽象,使得使用线程更容易。除了QThreads是可移植的,它们可以在使用底层线程系统的任何系统上运行,而pthreads是特定于POSIX系统的。

使用QThreads几乎唯一的缺点是你需要将你的应用程序链接到Qt;这种依赖性可能会使分发您的应用程序变得更加困难。

答案 1 :(得分:4)

但你必须知道QThreads使用事件循环来管理它,所以你不能像使用pthread一样杀死线程。如果线程做了很长时间的努力工作,那么在它不被释放时就不可能阻止它。在某些情况下,这很重要。

答案 2 :(得分:2)

我认为在事情的核心,Linux下的QThread使用pthread。我不确定Windows方面的内幕是什么。除非您需要某些特定的pthread API函数,而这些函数不适用于QThread,否则我会坚持QThread只是为了从它可以提供给您的可移植性中受益。我不希望有任何显着的性能差异。 Qthread还允许您跨线程边界使用信号/槽机制。