c++线程
时间: 2023-08-04 20:11:08 浏览: 89
C++ 线程暂停、继续
C++11开始引入了标准库的线程支持,可以使用 `<thread>` 头文件中的类来创建和管理线程。
以下是一个简单的示例代码,演示如何创建和启动一个线程:
```C++
#include <iostream>
#include <thread>
//线程函数
void thread_func(int n) {
std::cout << "Thread started, n = " << n << std::endl;
// do something
std::cout << "Thread ended." << std::endl;
}
int main() {
std::cout << "Main thread started." << std::endl;
//创建并启动线程
std::thread t(thread_func, 10);
//等待线程执行结束
t.join();
std::cout << "Main thread ended." << std::endl;
return 0;
}
```
在上面的代码中,我们首先定义了一个线程函数 `thread_func`,它接受一个整型参数 `n`,并在函数中输出一些信息。然后在 `main` 函数中创建了一个新线程,传递参数 `10` 给线程函数。最后调用 `t.join()` 等待线程执行结束。
除了 `join()`,还有 `detach()` 方法可以分离线程,使得线程可以独立运行,不再与主线程关联。但是需要注意的是,如果线程被分离,那么就无法再使用 `join()` 方法等待它结束了。
除了线程类以外,C++11 还引入了一些其他的并发编程工具,比如 `std::mutex`、`std::condition_variable` 等,可以用来保护共享资源、实现线程同步等。需要注意的是,在并发编程中,正确使用这些工具对于保证程序的正确性非常重要。
阅读全文