QThread:为何start会自动调用run执行线程代码

332 篇文章 ¥29.90 ¥99.00
QThread的start()方法启动线程并调用run()执行用户代码。start()通过pthread_create创建新线程,线程函数QThreadPrivate::start()调用run()。用户可通过重载run()实现自定义线程行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

QThread:为何start会自动调用run执行线程代码

在Qt中,使用QThread可以方便地进行多线程编程,其中start()函数是一个重要的方法,它可以启动一个新的线程并自动调用run()函数。本文将分析start()函数的实现原理,并解释为什么它能够自动调用run()函数。

首先,我们来看一下QThread的定义:

class QThread : public QObject
{
Q_OBJECT

public:
explicit QThread(QObject *parent = nullptr);
~QThread();

// 线程状态
enum Priority {
    IdlePriority,
    LowestPriority,
    LowPriority,
    NormalPriority,
    HighPriority,
    HighestPriority,
    TimeCriticalPriority,
    InheritPriority
};
void setPriority(Priority priority);
Priority priority() const;

enum PriorityBoost {
    NoPriorityBoost,
    AutomaticPriorityBoost
};
void setPriorityBoost(PriorityBoost priorityBoost);
PriorityBoost pri
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值