QThreadPool を試す前は、OS のスケジュールによっては、マルチスレッド プログラムの結果が不確実になる可能性があると考えていました。しかし、今日の私の意見は少し変わりました。
main.cpp のコードは次のとおりです。
runnableInst *hInst = new runnableInst("StarWar");
runnableInst *thread = new runnableInst("BlackSmith");
QThreadPool::globalInstance()->start(hInst);
QThreadPool::globalInstance()->start(thread);
これが実行機能です。
void runnableInst::run()
{
// while(1) {
for(int i = 0; i < 50; ++i) {
qDebug()<<"CurrentThread="<< QThread::currentThread();
qDebug()<<threadName + " is outputing. Count="<<i;
Sleep(100);
}
}
これが結果の一部です。
スレッドプールに追加した順番で2つのスレッドが動いているようです。クラス QThreadPool でランダムなスレッド実行結果が得られないということですか?