#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");
// Makes the main thread wait for the new thread to finish execution, therefore blocks its own execution.
t1.join();
}
I2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dGhyZWFkPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCi8vIFRoZSBmdW5jdGlvbiB3ZSB3YW50IHRvIGV4ZWN1dGUgb24gdGhlIG5ldyB0aHJlYWQuCnZvaWQgdGFzazEoc3RyaW5nIG1zZykKewogICAgY291dCA8PCAidGFzazEgc2F5czogIiA8PCBtc2c7Cn0KCmludCBtYWluKCkKewogICAgLy8gQ29uc3RydWN0cyB0aGUgbmV3IHRocmVhZCBhbmQgcnVucyBpdC4gRG9lcyBub3QgYmxvY2sgZXhlY3V0aW9uLgogICAgdGhyZWFkIHQxKHRhc2sxLCAiSGVsbG8iKTsKCiAgICAvLyBNYWtlcyB0aGUgbWFpbiB0aHJlYWQgd2FpdCBmb3IgdGhlIG5ldyB0aHJlYWQgdG8gZmluaXNoIGV4ZWN1dGlvbiwgdGhlcmVmb3JlIGJsb2NrcyBpdHMgb3duIGV4ZWN1dGlvbi4KICAgIHQxLmpvaW4oKTsKfQ==