@dayna
В C++ существует несколько способов создания потоков. Вот некоторые из них:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include #include // Функция, которую будет выполнять поток void threadFunction() { std::cout << "Hello from thread!" << std::endl; } int main() { // Создание нового потока и его выполнение std::thread threadObj(threadFunction); // Ожидание завершения потока threadObj.join(); return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
#include #include int main() { // Создание нового потока и его выполнение с помощью лямбда-функции std::thread threadObj([]{ std::cout << "Hello from thread!" << std::endl; }); // Ожидание завершения потока threadObj.join(); return 0; } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include #include // Функтор struct ThreadFunctor { void operator()() { std::cout << "Hello from thread!" << std::endl; } }; int main() { // Создание нового потока и его выполнение с использованием функтора std::thread threadObj(ThreadFunctor()); // Ожидание завершения потока threadObj.join(); return 0; } |
Во всех трех примерах поток создается с помощью конструктора класса std::thread
и выполняется функция/лямбда-функция/функтор. Затем метод join()
вызывается для ожидания завершения потока.