21xrx.com
2024-11-10 00:47:49 Sunday
登录
文章检索 我的文章 写文章
C++11 的线程创建
2023-07-05 10:48:23 深夜i     --     --
C++11 线程 创建 std::thread lambda函数

C++11 是 C++ 编程语言的一个重要版本,在这个版本中加入了很多新特性,其中就包括了线程的创建。这使得 C++ 语言能够更加方便地开发多线程程序,提高程序的执行效率。

在 C++11 中,线程的创建非常简单。我们只需要包含 头文件,然后调用 std::thread 的构造函数即可。例如:


#include <thread>

#include <iostream>

void func()

  std::cout << "Hello world from thread!" << std::endl;

int main()

{

  std::thread t(func);

  t.join(); // 等待线程结束

  return 0;

}

在上面的例子中,我们首先定义了一个名为 func 的函数,它将在新线程中执行。然后我们在 main 函数中创建了一个名为 t 的线程,并将 func 函数作为参数传递进去。

线程创建后,我们可以通过 t.join() 等待线程结束。如果不调用 join 函数或者 detach 函数,线程结束时会抛出 std::system_error 异常。

除了 std::thread 构造函数外,我们还有其他的线程创建方式。比如说,我们可以使用 lambda 表达式来创建一个简单的线程:


#include <thread>

#include <iostream>

int main()

{

  std::thread t([]() std::cout << "Hello world from thread!" << std::endl; );

  t.join(); // 等待线程结束

  return 0;

}

在上面的例子中,我们使用一个 lambda 表达式来定义线程的执行代码。lambda 表达式的语法简单易懂,这种方式可以让我们更加灵活地创建线程。

总的来说,C++11 的线程创建功能非常强大,让开发者们能够更加方便地编写多线程程序。如果你还没有使用过 C++11 的线程创建功能,我建议你尝试一下,相信你会对它的便利性感到很满意。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复