在C++中,可以使用多线程来提高程序的执行效率。多线程程序可以把一个任务拆分成多个子任务,在多个线程中同时处理,从而提高程序的执行效率。在C++中,可以使用std::thread类来创建和管理线程。
要创建线程,可以使用std::thread类的构造函数,构造函数有两种形式:
第一种形式用于创建一个线程,线程执行的函数不带参数;第二种形式用于创建一个线程,线程执行的函数带参数。
#include <thread> #include <iostream> // 线程函数,不带参数 void threadFunc1() { std::cout << "threadFunc1" << std::endl; } // 线程函数,带参数 void threadFunc2(int x, int y) { std::cout << "threadFunc2: x + y = " << x + y << std::endl; } int main() { // 创建线程t1,执行threadFunc1函数 std::thread t1(threadFunc1); // 创建线程t2,执行threadFunc2函数,带参数 std::thread t2(threadFunc2, 1, 2); // 等待线程t1和t2结束 t1.join(); t2.join(); return 0; }
线程在创建后,可以使用std::thread类的成员函数来管理线程。
还可以使用std::this_thread命名空间中的函数来管理线程。
#include <thread> #include <iostream> #include <chrono> // 线程函数 void threadFunc() { std::cout << "threadFunc: thread id = " << std::this_thread::get_id() << std::endl; std::this_thread::sleep_for(std::chrono::seconds(1)); std::this_thread::yield(); } int main() { std::cout << "main: thread id = " << std::this_thread::get_id() << std::endl; std::thread t(threadFunc); t.join(); return 0; }
本文链接:http://task.lmcjl.com/news/12224.html