สร้างฟังก์ชั่นที่คุณต้องการให้เธรดดำเนินการเช่น:
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();
}
ข้อมูลเพิ่มเติมเกี่ยวกับมาตรฐาน :: ด้ายที่นี่
- เมื่อวันที่ GCC
-std=c++0x -pthread
รวบรวมกับ
- สิ่งนี้น่าจะใช้ได้กับระบบปฏิบัติการใด ๆ ที่คอมไพเลอร์ของคุณรองรับคุณสมบัตินี้ (C ++ 11)