多线程中
    QThread类提供了与系统无关的线程;
    QThread代表在程序中一个单独的线程控制,在多任务操作系统中,它和同一进程中的其它线程共享数据,但运行起来就像一个单独的程序一样。它不是在main()中开始,QThread是在run)中开始运行的。
    Ru()对于线程的作用相当于rmain函数对于应用程序。它是线程的入口,run物开始和结束意味着线程的开始和结束

    S中o,品1线程管理
    1、线程启动
    void start(Priority priority = InheritPriority)
    调用后会执行run()函数,但在run()函数执行前会发射信号started(),操作系统将根据优先级参数调度线程。
    2、线程执行
    int exec()
    进入事件循环并等待直到调用exit(),返回值是通过调用exit()来获得,如果调用成功则范围0。
    virtual void run();
    线程的起点,在调用start()之后,新创建的线程就会调用这个函数,默认实现调用exec(),大多数需要重新实现这个功能,便于管理自己的线程。该方法返回时.该线程的执行将结束。
    3、线程退出
    void quit():返回0表示成功,相当于调用了QThread::exit(0)。
    void exit(int returnCode = 0)∶调用这个函数后,线程离开事件循环后返回。
    void terninate():终止线程,线程可能会立即被终止也可能不会,这取决于操作系统的调度策略,使用terminate()之后再使用
    QThread::wait()确保万无一失。
    当线程被终止后,所有等待中的线程将会被唤醒。

    4.线程等待
    void msleep(unsigned long msecs):强制当前线程睡眠msecs毫秒
    void sleep(unsigned long secs):强制当前线程睡眠secs秒
    void usleep(unsigned long usecs):强制当前线程睡眠usecs微秒
    bool wait(unsigned long time = ULONG_MAX);线程将会被阻塞,等待time毫秒。和sleep不同的是,如果线程退出,wait会返回。

    5、线程状态bool isFinished() const
    :线程是否结束
    bool isRunning() const
    ∶线程是否正在运行

    6、线程优先级
    void setPriority(Priority priority)
    这个函数设置正在运行线程的优先级。如果线程没有运行,此功能不执行在何操作并立即返回。使用的start()来启动一个线程具有特定的优先级。