Qt_Core_AD_5 - 8BitsCoding/RobotMentor GitHub Wiki


// main.cpp
#include <QtCore/QCoreApplication>

#include <qdebug.h>
#include <qthread.h>
#include <qthreadpool.h>

#include "counter.h"

int main(int argc, char *argv[])
{
	QCoreApplication a(argc, argv);

	QThread::currentThread()->setObjectName("Main");
	QThreadPool* pool = QThreadPool::globalInstance();

	for (int i = 0; i < 100; i++) {
		counter* c = new counter;
		c->setAutoDelete(true);

		pool->start(c);
	}

	return a.exec();
}
// counter.h
#pragma once

#include <QObject>
#include <qdebug.h>
#include <qrunnable.h>
#include <qrandom.h>
#include <qthread.h>

class counter : public QRunnable
{
public:
	void run();

};
// counter.cpp
#include "counter.h"

void counter::run()
{
	qInfo() << "Starting: " << QThread::currentThread();

	for (int i = 0; i < 20; i++) {
		qInfo() << QThread::currentThread() << " = " << i;
		auto value = static_cast<unsigned long>(QRandomGenerator::global()->bounded(500));
		QThread::currentThread()->msleep(value);
	}

	qInfo() << "Finished: " << QThread::currentThread();
}

이미지


#include <QtCore/QCoreApplication>

#include <qdebug.h>
#include <qthread.h>
#include <qthreadpool.h>

#include "counter.h"

int main(int argc, char *argv[])
{
	QCoreApplication a(argc, argv);

	QThread::currentThread()->setObjectName("Main");
	QThreadPool* pool = QThreadPool::globalInstance();
	
	qInfo() << pool->maxThreadCount() << " Threads";

	/*
	for (int i = 0; i < 100; i++) {
		counter* c = new counter;
		c->setAutoDelete(true);

		pool->start(c);
	}
	*/

	return a.exec();
}

이미지

⚠️ **GitHub.com Fallback** ⚠️