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 priorityBoost() const;
void start(QThread::Priority priority
Qt中的QThread:start如何调用run执行线程代码
QThread的start()方法启动线程并调用run()执行用户代码。start()通过pthread_create创建新线程,线程函数QThreadPrivate::start()调用run()。用户可通过重载run()实现自定义线程行为。
订阅专栏 解锁全文
3912

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



