新建基于QThread的类:

#include <QString>
#include <QThread>

class MyThread : public QThread
{
public:
    MyThread(QString s);
private:
    QString name;
protected:
    void run();
};

重载run函数:

void MyThread::run()
{
    int i = 0;
    while(1)
    {
        qDebug()<<name.toStdString().c_str()<<":"<<i++;
        sleep(1);    // 线程休眠
    }
}

创建线程:

MyThread *t1 = new MyThread("ThreadA");
MyThread *t2 = new MyThread("ThreadB");

线程启动:

t1->start();                                     // 默认优先级InheritPriority
t2->start(QThread::Priority::NormalPriority);    // 指定优先级

线程终止:

t1->terminate();

线程信号:

void started(QPrivateSignal);
void finished(QPrivateSignal);
connect(t1, SIGNAL(started()),  this, SLOT(on_thread_started()));
connect(t1, SIGNAL(finished()), this, SLOT(on_thread_finished()));

线程休眠: 由线程自己调用,不建议在主程序中调用(否则调用程序会阻塞)

sleep(5);        // 单位为秒
msleep(500);     // 毫秒级休眠
usleep(10000);   // 微秒级休眠