我有一个简单的问题。我应该创建一个小型多线程程序来从多个传感器中获取数据,并且我知道pthreads和qthreads。我可以访问这两个库。我个人偏向于使用Qt,因为它的设计和各种功能。但是使用一个与另一个有明显的优势吗? 感谢
答案 0 :(得分:8)
QThreads建立在pthreads之上。它们提供了面向对象的抽象,使得使用线程更容易。除了QThreads是可移植的,它们可以在使用底层线程系统的任何系统上运行,而pthreads是特定于POSIX系统的。
使用QThreads几乎唯一的缺点是你需要将你的应用程序链接到Qt;这种依赖性可能会使分发您的应用程序变得更加困难。
答案 1 :(得分:4)
但你必须知道QThreads使用事件循环来管理它,所以你不能像使用pthread一样杀死线程。如果线程做了很长时间的努力工作,那么在它不被释放时就不可能阻止它。在某些情况下,这很重要。
答案 2 :(得分:2)
我认为在事情的核心,Linux下的QThread
使用pthread
。我不确定Windows方面的内幕是什么。除非您需要某些特定的pthread
API函数,而这些函数不适用于QThread
,否则我会坚持QThread
只是为了从它可以提供给您的可移植性中受益。我不希望有任何显着的性能差异。 Qthread
还允许您跨线程边界使用信号/槽机制。