并行编程:原理、实践与挑战
1. 线程基础
在软件开发中,当需要执行大量工作时,图形用户界面可能会冻结。线程可以解决这个问题。每个应用程序通常作为一个进程运行,现代操作系统中多个应用程序可并行运行。进程相互独立,而每个进程内可包含一个或多个线程,这些线程共享资源和内存,可协作完成任务,提高多处理器系统的效率。
应用程序启动时,会以主线程的形式运行, QApplication::exec 方法从主线程调用,所有的窗口部件和用户界面对象都由主线程处理。通过继承 QThread 类,可以创建新的线程,并重写 run 方法来定义线程的工作。
以下是一个简单的线程类 TextThread 的示例:
class TextThread : public QThread
{
public:
TextThread( const QString &text );
void run();
private:
QString m_text;
};
bool stopThreads = false;
TextThread::TextThread( const QString &text ) : QThread()
{
m_text = text;
}
void TextThread::run()
{
while( !stopThreads )
{
qDebug() << m_text;
sleep( 1 );
超级会员免费看
订阅专栏 解锁全文
684

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



