İş parçacığının yürütmesini istediğiniz bir işlev oluşturun, örneğin:
void task1(std::string msg)
{
std::cout << "task1 says: " << msg;
}
Şimdi thread
sonuçta yukarıdaki işlevi aşağıdaki gibi çağıracak nesneyi oluşturun :
std::thread t1(task1, "Hello");
( Sınıfa #include <thread>
erişmeniz gerekiyor std::thread
)
Yapıcı argümanları, iş parçacığının yürüteceği işlevdir, bunu işlevin parametreleri izler. İplik, yapım sonrasında otomatik olarak başlatılır.
Daha sonra işlevi yürütmek için iş parçacığının yapılmasını beklemek istiyorsanız, arayın:
t1.join();
(Birleştirme, yeni iş parçacığını çağıran iş parçacığının, kendi işleyişine devam etmeden önce yeni iş parçacığının yürütmeyi bitirmesini bekleyeceği anlamına gelir).
Kod
#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();
}
Std :: thread here hakkında daha fazla bilgi
- GCC'de ile derleyin
-std=c++0x -pthread
.
- Bu, herhangi bir işletim sistemi için çalışmalıdır, derleyicinizin bu (C ++ 11) özelliğini desteklemesi gerekir.