本文共分为两个部分,第一部分说明命令行形式下运行多线程程序。第二部分介绍 QT集成IDE下多线程程序的运行。
第一部分: Linux命令行形式下运行多线程程序
在linux命令行下编译多线程程序时,需要添加 -lpthread,现在通过实验来说明命令行下的多线程程序运行:
实验中使用的程序代码如下:
#include <iostream>
#include <thread>
#include <chrono>
void foo()
{
// simulate expensive operation
std::this_thread::sleep_for(std::chrono::seconds(1));
}
void bar()
{
// simulate expensive operation
std::this_thread::sleep_for(std::chrono::seconds(1));
}
int main()
{
std::cout << "starting first helper...\n";
std::thread helper1(foo);
std::cout << "starting second helper...\n";
std::thread helper2(bar);
std::cout << "waiting for helpers to finish..." << std::endl;
helper1.join();
helper2.join();
std::cout << "done!\n";
}
未添加-lpthread的运行命令: