21xrx.com
2025-07-11 23:09:15 Friday
文章检索 我的文章 写文章
C++中如何新建线程?
2023-07-05 04:12:16 深夜i     --     --
C++ 新建线程 多线程编程 线程同步 线程控制流程

C++ 是一门广泛应用于编程领域的高级编程语言,能够支持面向对象编程以及多种编程范式。在多线程编程中,C++通过提供多线程库来实现多线程程序的创建和管理。这篇文章将介绍在C++中如何新建线程。

在C++中,创建线程需要使用头文件#include 并使用该库中的std::thread类。这个类具有多种操作,最主要的是它能够让用户创建新的线程。

下面是一些使用 std::thread 创建线程的示例代码:

#include <iostream>
#include <thread>
void myFunction(int x)
  std::cout << "The value of x is: " << x << std::endl;
int main()
{
  std::thread t1(myFunction, 10); // 创建一个新线程,函数传入参数为 10
  t1.join(); // 在主线程中等待新线程结束
  return 0;
}

在上面的例子中,我们定义了一个名为 `myFunction` 的函数,该函数接受一个 int 类型的参数 x 并打印它的值。我们还定义了一个主函数 `main`,该函数使用`std::thread`类创建了一个新线程。

std::thread t1(myFunction, 10);

该语句创建了一个名为 `t1` 的线程,并将函数 `myFunction` 作为参数传入。传入参数 10 将用作 `x`的值。在前面的代码中,我们使用了 `join`函数来等待新线程结束。

要创建多个线程,您也可以使用如下代码:

#include <iostream>
#include <thread>
void myFunction(int x)
  std::cout << "The value of x is: " << x << std::endl;
int main()
{
  std::thread t1(myFunction, 10); // 创建线程1
  std::thread t2(myFunction, 20); // 创建线程2
  std::thread t3(myFunction, 30); // 创建线程3
  t1.join(); // 等待线程1结束
  t2.join(); // 等待线程2结束
  t3.join(); // 等待线程3结束
  return 0;
}

在这个例子中,我们创建了三个名为 `t1`、`t2` 和 `t3` 的线程,并将 `myFunction` 函数与三个不同的参数相结合,以便于在执行它们时输出正确的结果。

最后需要注意,当一个线程结束时,会自动被销毁,这时候不需要使用 `delete` 运算符。如果您使用 `delete` 来销毁线程,编译器会抛出错误提示。

至此,我们已经学习了C++中使用 std::thread 类来创建线程的简单例子。多线程编程有很多挑战,需要更深入的学习和了解,希望本文能为您提供一些基础知识的指导。

  
  

评论区