小工具知识网

当前位置: 首页 > 行业知识 > 线程的使用

行业知识

线程的使用

2026-11-15 18:52:57 来源:互联网转载

���录

()

1,创建线程的几种方式

2,示例

()

3,线程常用方法

3.1 std::thread类

3.1.1 成员变量

3.1.2 thread成员函数

3.1.2.1 thread 构造函数

3.1.2.2 thread 析构函数

3.1.2.3 get_id 获取线程id

3.1.2.4 joinable 

3.1.2.5 join 加入

3.1.2.6 detach 分离

3.1.2.7 swap 交换线程

3.1.2.8 join用法示例

3.1.2.9 detach()用法示例

3.2 std::this_thread命名空间

3.2.1 this_thread命名空间的函数介绍

3.3 pthread函数 (C++98)

3.3.1 pthread_create 线程创建 

3.3.2 pthread_join线程挂起

3.3.3 pthread_exit线程退出

3.3.4 pthread_self获取当前线程id

3.3.5 代码示例


1,创建线程的几种方式

        a> 通过函数指针创建线程

        b> 通过函数对象创建线程

        c> 通过lambda函数创建线程

使用std::thread类创建对象,必须包含头文件

        #include

创建的形式是

        std::thread thobj()

        新线程将在创建新对象后立即启动,并将与启动该线程的线程并行执行传递的回调。而且,任何线程都可以通过在该线程的对象上调用join()函数来等待另一个线程退出。

2,示例

        std::this_thread::sleep_for 函数是休眠函数,表示当前线程休眠一段时间,休眠期间不与其他线程竞争CPU

        std::chrono::seconds 是 std::chrono 库中的一个持续时间类

        std::cref、std::ref 和 std::reference_wrapper

        在 C++ 编程中,有时候我们需要在不进行拷贝的情况下传递引用,或者在需要引用的地方使用常量对象。为了解决这些问题,C++ 标准库提供了三个有用的工具:std::cref、std::ref 和 std::reference_wrapper。

        std::cref 是一个模板函数,用于创建对常量对象的引用。它返回一个 std::reference_wrapper 对象,可以在需要引用的地方使用。这在函数参数传递中特别有用,因为它允许我们在不进行拷贝的情况下传递常量对象,同时保持引用的语义。
      std::ref 是一个模板函数,用于创建对可修改对象的引用。它返回一个 std::reference_wrapper 对象,允许我们在需要引用的地方使用,同时允许修改被引用的对象。

        std::reference_wrapper 是一个模板类,用于包装引用,使其能够在容器中存储或以引用的形式传递。它提供类似引用的语法,并且可以与标准容器一起使用,因为容器无法直接存储引用。

#include #include #include using namespace std;class Thread_Test{public:void operator()(){for (int i = 0; i 

上一篇:国际服在哪里选择服务器?

下一篇:360软件下载APP使用指南,轻松上手,一键安装