Skip to content

Threads

Created on Dec 4, ’22 ・ Updated on May 14, ’23
  • Green thread : thread ordonnancé par une machine virtuelle ou une librairie qui émule l'ordonnanceur de l'OS.
  • Native thread : thread natif géré par l'ordonnanceur de l'OS.

QThread

class MyThread : public QThread {

    private:
        virtual void run() Q_DECL_OVERRIDE {
            // code du thread
        }
};
int main(int argc, char *argv[]) {
    MyThread thread;
    thread.start(); // lance l’exécution du thread thread.wait();  // attend la terminaison du thread return 0;
}

Un thread se termine lorsqu'il exécute l'instruction return. Depuis un autre thread il peut être interrompu avec :

QThread::terminate() // à eviter

QThread::requestInterruption()
QThread::isInterruptionRequested() // depuis le thread concerné
QThread::currentThreadId()    // retourne l'id the thread courrant
QThread::yieldCurrentThread() // le thread appelant est préempté