एक फ़ंक्शन बनाएँ जिसे आप थ्रेड निष्पादित करना चाहते हैं, जैसे:
void task1(std::string msg)
{
std::cout << "task1 says: " << msg;
}
अब उस thread
वस्तु का निर्माण करें जो अंततः फ़ंक्शन को ऊपर की तरह लागू करेगी:
std::thread t1(task1, "Hello");
(आपको कक्षा #include <thread>
तक पहुंचने की आवश्यकता है std::thread
)
कंस्ट्रक्टर की दलीलें फ़ंक्शन हैं जो थ्रेड निष्पादित करेगा, उसके बाद फ़ंक्शन के पैरामीटर। धागा स्वचालित रूप से निर्माण पर शुरू किया जाता है।
यदि बाद में आप फ़ंक्शन को निष्पादित करने के लिए थ्रेड के लिए प्रतीक्षा करना चाहते हैं, तो कॉल करें:
t1.join();
(जुड़ने का अर्थ है कि नया धागा लगाने वाला धागा निष्पादन समाप्त करने के लिए नए धागे की प्रतीक्षा करेगा, इससे पहले कि वह अपना निष्पादन जारी रखेगा)।
कोड
#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 के बारे में अधिक जानकारी :: थ्रेड यहाँ
- जीसीसी पर, के साथ संकलित करें
-std=c++0x -pthread
।
- यह किसी भी ऑपरेटिंग-सिस्टम के लिए काम करना चाहिए, बशर्ते आपका कंपाइलर इस (C ++ 11) फीचर को सपोर्ट करे।