讲解一下thread函数
时间: 2023-08-14 20:05:12 浏览: 45
thread函数是一个用于创建线程的函数,它可以在程序中同时执行多个任务。在C++中,thread函数位于<thread>头文件中,并且是一个类模板。它接受一个可调用的函数作为参数,并可选地接受函数参数。
要创建一个线程,首先需要定义一个可调用的函数。这个函数可以是普通函数、成员函数或者一个lambda表达式。然后,使用thread函数来创建一个线程对象,并将可调用的函数作为参数传递给它。
一旦线程对象被创建,可以使用它的成员函数来控制线程的行为,比如启动线程、等待线程结束、检查线程是否运行等。
下面是一个简单的示例代码,展示了如何使用thread函数创建一个线程:
```cpp
#include <iostream>
#include <thread>
// 可调用的函数
void printHello() {
std::cout << "Hello from thread!" << std::endl;
}
int main() {
// 创建线程对象并启动线程
std::thread t(printHello);
// 等待线程结束
t.join();
return 0;
}
```
在上面的代码中,我们定义了一个名为printHello的可调用函数,它简单地输出一条消息。然后,在主函数中,我们使用thread函数创建了一个名为t的线程对象,并将printHello函数作为参数传递给它。最后,我们调用t的join函数来等待线程结束。
当程序运行时,线程会被启动,并输出"Hello from thread!"的消息。然后,主线程会等待该线程结束,最后程序退出。
这就是thread函数的基本用法,它提供了一种方便的方式来创建和管理线程。注意,线程的执行顺序是不确定的,具体取决于操作系统和CPU调度器的行为。