std::thread 成员函数
时间: 2024-09-24 09:23:51 浏览: 39
C++11 并发指南之std::thread 详解
`std::thread`是C++标准库中的一个线程处理类,用于创建和管理线程。它的一些主要成员函数包括:
1. **ctor/dtor (构造/析构)**:
- `std::thread(const std::function<void()>& func)` 或 `std::thread(std::thread::id id, void(*)()`:构造函数接收一个可调用对象(如函数指针、lambda表达式)作为线程执行的目标。
- `~thread()`:析构函数,在线程结束时自动调用,清理资源。
2. **start()**:
- `void start()`:开始执行线程。如果线程已经启动,这将抛出异常。
3. **join()**:
- `void join()`:等待线程完成。调用者会阻塞直到线程执行完毕。
- `bool join_for(time_t timeout)`:带超时的版本,可以设置最大等待时间。
4. **detach()**:
- `void detach()`:从当前线程分离该线程,使其独立运行。不再关心线程是否终止。
5. **id() const**:
- `thread::id id()`:返回线程ID,表示线程的唯一标识符。
6. **interrupt()** 和 **try_join_for()**:
- `void interrupt()`:中断正在执行的线程。
- `bool try_join_for(time_t timeout)`:尝试在一个指定的时间内等待线程结束,如果没有完成则返回false。
7. **native_handle() const**:
- `native_thread_t native_handle()`:提供底层操作系统线程的原始句柄,用于更底层的操作。
8. **get_id() const**:
- `const thread::id& get_id()`:获取线程ID的引用。
以上是一些主要的成员函数,使用它们可以创建、控制和操作C++11及更高版本中的线程。
阅读全文