21xrx.com
2024-12-22 21:40:08 Sunday
登录
文章检索 我的文章 写文章
C++如何开启多线程
2023-07-04 19:04:11 深夜i     --     --
C++ 多线程 开启

C++ 是一种强大的编程语言,它可以实现多线程编程。多线程可以提高程序的并发性和性能,在 C++ 中开启多线程非常简单,下面我们一起来看看具体的实现方法。

C++ 提供了一个标准库 thread,通过该库可以创建和管理线程。首先需要包含 头文件,接着使用 std::thread 类创建一个线程对象。例如:


#include <iostream>

#include <thread>

void my_thread_function()

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

int main() {

  std::thread my_thread(my_thread_function);

  my_thread.join();

  return 0;

}

上述代码通过 std::thread 类创建一个线程对象 my_thread,并将 my_thread_function 函数作为参数传递进去。最后调用 join() 函数以防止主线程退出后,子线程仍在运行。

除了使用函数作为参数创建线程外,还可以使用 lambda 表达式作为参数来创建线程。例如:


#include <iostream>

#include <thread>

int main() {

  std::thread my_thread([]()

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

  );

  my_thread.join();

  return 0;

}

上述代码使用了 lambda 表达式作为参数来创建线程对象 my_thread,该 lambda 表达式实现了打印字符串的功能。

另外,我们可以使用 std::async 函数创建线程,并异步执行指定的函数。例如:


#include <iostream>

#include <future>

void my_thread_function()

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

int main() {

  std::future<void> f = std::async(std::launch::async, my_thread_function);

  f.wait();

  return 0;

}

上述代码使用 std::async 函数创建了一个异步任务,并将 my_thread_function 函数作为参数传递进去。该函数返回一个 std::future 对象,表示异步任务的结果。

可以看到,开启多线程非常简单,只需要使用 C++ 提供的标准库 thread、async,或者 lambda 表达式即可。在实际应用中,我们需要根据具体的需求选择不同的方式来开启和管理多线程。

  
  

评论区

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