21xrx.com
2024-11-22 12:28:09 Friday
登录
文章检索 我的文章 写文章
C++11多线程实现1到10的循环打印
2023-06-22 18:46:34 深夜i     --     --
C++11 多线程 循环打印 1-10 实现

在现代编程中,多线程是必不可少的一项技术。C++11中的多线程库提供了一种灵活和高效的方式来实现多线程编程。在本文中,我们将演示如何使用C++11多线程实现1到10的循环打印。

在C++11中,多线程库由 头文件提供。为了实现多线程,首先需要创建一个线程对象,并指定要执行的函数。在本例中,我们将创建10个线程,每个线程打印一个数字。以下是完整代码:


#include <iostream>

#include <thread>

void print_number(int n)

  std::cout << n << std::endl;

int main() {

  std::thread threads[10];

  for (int i = 1; i <= 10; ++i) {

    threads[i - 1] = std::thread(print_number, i);

  }

  for (int i = 1; i <= 10; ++i) {

    threads[i - 1].join();

  }

  return 0;

}

如上所述,我们创建了一个名为print_number的函数,并将要打印的数字n作为参数传递。在主函数中,我们创建了一个大小为10的线程数组,然后在循环中创建了10个线程,并将打印数字的函数和相应的数字i作为参数传递给每个线程。最后,我们在循环中调用每个线程的join方法,以确保在主线程退出之前所有线程都已经完成。

需要注意的是,在将函数作为参数传递给线程对象时,需要使用C++的function对象。function类是C++11中的一个通用函数容器,可以将任何可调用对象存储为函数指针,并充当回调函数。

总的来说,C++11的多线程库提供了一种灵活和高效的方式来实现多线程编程。通过使用简单的示例代码,我们演示了如何使用C++11多线程实现1到10的循环打印。需要注意的是,在实际应用中,编写多线程代码时需要注意线程同步,以避免竞态条件和死锁等问题。

  
  

评论区

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