Класс thread
Класс thread создает новый поток выполнения,
который запускается параллельно с основным потоком
программы. В конструктор класса передается функция,
которая будет выполняться в новом потоке, а также
аргументы этой функции. После создания потока
необходимо либо дождаться его завершения методом
join, либо отсоединить его методом
detach.
Синтаксис
#include <thread>
thread th(func, arg1, arg2, ...);
Пример
Давайте создадим поток, который выведет
строку "hello", и дождемся его завершения:
#include <iostream>
#include <thread>
using namespace std;
void func()
{
cout << "hello" << endl;
}
int main()
{
thread th(func);
th.join();
return 0;
}
Результат выполнения кода:
"hello"
Пример
Давайте создадим поток, которому передадим
два числа 2 и 3, и выведем их сумму:
#include <iostream>
#include <thread>
using namespace std;
void sum(int a, int b)
{
cout << a + b << endl;
}
int main()
{
thread th(sum, 2, 3);
th.join();
return 0;
}
Результат выполнения кода:
5
Пример
Давайте создадим два потока, которые выведут свои строки параллельно:
#include <iostream>
#include <thread>
using namespace std;
void func(string name)
{
cout << name << endl;
}
int main()
{
thread th1(func, "a");
thread th2(func, "b");
th1.join();
th2.join();
return 0;
}
Результат выполнения кода:
"a"
"b"