Здравствуйте! Мне нужно написать простое приложение, которое запускает несколько параллельных потоков. Написал простой код, но он не работает параллельно, все потоки запускаются по очереди. Подскажите, пожалуйста, что я делаю не так?
mythread.h:
#ifndef MYTHREAD_H
#define MYTHREAD_H
#include <QThread>
#include <QDebug>
#include <QTime>
class MyThread : public QThread
{
public:
MyThread(int n);
~MyThread();
void run();
private:
int m_ID;
QTime m_time;
QString m_outString;
void showState(QString state);
};
#endif // MYTHREAD_H
mythread.cpp:
#include "mythread.h"
MyThread::MyThread(int n)
{
m_ID = n;
showState("created");
}
MyThread::~MyThread()
{
showState("deleted");
}
void MyThread::run()
{
showState("started");
sleep(3);
showState("finished");
}
void MyThread::showState(QString state)
{
m_outString = m_time.currentTime().toString("hh:mm:ss.zzz");
m_outString.append(QString(" Thread %1: %2").arg(m_ID).arg(state));
qDebug() << m_outString;
}
main.cpp:
#include <QCoreApplication>
#include "mythread.h"
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
const int threadCount = 15;
for (int i = 0; i < threadCount; i ++)
{
MyThread *myThread = NULL;
myThread = new MyThread (i);
myThread->run();
}
return a.exec();
}