Erstellen Sie eine Funktion, die der Thread ausführen soll, z.
void task1(std::string msg)
{
std::cout << "task1 says: " << msg;
}
Erstellen Sie nun das thread
Objekt, das letztendlich die obige Funktion aufruft, wie folgt:
std::thread t1(task1, "Hello");
(Sie müssen auf #include <thread>
die std::thread
Klasse zugreifen )
Die Argumente des Konstruktors sind die Funktion, die der Thread ausführen wird, gefolgt von den Parametern der Funktion. Der Thread wird beim Aufbau automatisch gestartet.
Wenn Sie später warten möchten, bis der Thread die Funktion ausgeführt hat, rufen Sie Folgendes auf:
t1.join();
(Beitritt bedeutet, dass der Thread, der den neuen Thread aufgerufen hat, darauf wartet, dass der neue Thread die Ausführung beendet, bevor er seine eigene Ausführung fortsetzt.)
Der Code
#include <string>
#include <iostream>
#include <thread>
using namespace std;
// The function we want to execute on the new thread.
void task1(string msg)
{
cout << "task1 says: " << msg;
}
int main()
{
// Constructs the new thread and runs it. Does not block execution.
thread t1(task1, "Hello");
// Do other things...
// Makes the main thread wait for the new thread to finish execution, therefore blocks its own execution.
t1.join();
}
Weitere Informationen zu std :: thread finden Sie hier
- Kompilieren Sie auf GCC mit
-std=c++0x -pthread
.
- Dies sollte für jedes Betriebssystem funktionieren, vorausgesetzt, Ihr Compiler unterstützt diese Funktion (C ++ 11).