QThread使用的一个例子----多线程

时间:2022-07-04 23:10:19

#include <qthread.h>

    class MyThread : public QThread {
    public:
        virtual void run();
    };

    void MyThread::
run()
    {
        for( int count = 0; count < 20; count++ ) {
            
sleep( 1 );
            
qDebug( "Ping!" );
        }
    }

    int main()
    {
        MyThread a;
        MyThread b;
        a.
start();
        b.
start();
        a.
wait();  //必须要添加的函数,此函数保证a.start()函数的执行!
        b.
wait();
    }
-----------------------------------------------------

这将会开始两个线程,每个线程在屏幕上写20次“Ping!”并且退出。在main()的结尾调用wait()是必需的,因为main()的结束会终结整个程序,它会杀掉所有其它线程。当每个MyThread运行到MyThread::run()结尾时,它就结束运行,就好像一个应用程序离开main()时所做的一样。