多线程编程:Qt 中的线程创建与同步
1. 多线程编程概述
传统的 GUI 应用程序通常只有一个执行线程,一次只能执行一个操作。当用户从用户界面调用耗时操作时,界面往往会在操作进行期间冻结。多线程编程是解决这个问题的一种有效方法。
在多线程应用程序中,GUI 运行在自己的线程中,而额外的处理则在一个或多个其他线程中进行。这样,即使在进行密集处理时,应用程序的 GUI 也能保持响应。在单处理器上运行时,由于多线程的开销,多线程应用程序可能比单线程等效程序运行得慢。但在越来越常见的多处理器系统中,多线程应用程序可以在不同的处理器上同时执行多个线程,从而提高整体性能。
2. 创建线程
在 Qt 应用程序中提供多个线程非常简单,只需子类化 QThread 并重新实现其 run() 函数。下面是一个简单的 QThread 子类示例,它会在控制台重复打印给定的字符串。
class Thread : public QThread
{
Q_OBJECT
public:
Thread();
void setMessage(const QString &message);
void stop();
protected:
void run();
private:
QString messageStr;
volatile bool stopped;
};
Thread::Thread()
{
stopped = false;
}
void T
超级会员免费看
订阅专栏 解锁全文
1523

被折叠的 条评论
为什么被折叠?



