21xrx.com
2024-11-05 21:58:28 Tuesday
登录
文章检索 我的文章 写文章
C++实现线程交替打印1到100
2023-07-10 10:10:32 深夜i     --     --
C++ 线程 交替打印 1到100

在多线程编程中,线程的并发执行是一种很常见的需求。一个常见的问题是,如何使用C++编程实现两个线程的交替执行。本文基于C++语言,演示如何实现两个线程交替打印1到100的程序。

首先,我们需要定义两个线程函数,一个用于打印奇数,一个用于打印偶数。它们的代码分别如下:


void print_odd()

{

  for(int i=1; i<=100; i+=2)

  

    cout<<i<<" ";  // 打印奇数

  

}

void print_even()

{

  for(int i=2; i<=100; i+=2)

  

    cout<<i<<" ";  // 打印偶数

  

}

现在,我们需要创建两个线程,并让它们交替执行。使用C++语言的` `库,我们可以很容易地实现这一点。代码如下:


#include <iostream>

#include <thread>

using namespace std;

void print_odd()

{

  for(int i=1; i<=100; i+=2)

  {

    cout<<i<<" ";  // 打印奇数

    this_thread::sleep_for(chrono::milliseconds(10));  // 线程休眠,以模拟交替执行的效果

  }

}

void print_even()

{

  for(int i=2; i<=100; i+=2)

  {

    cout<<i<<" ";  // 打印偶数

    this_thread::sleep_for(chrono::milliseconds(10));  // 线程休眠,以模拟交替执行的效果

  }

}

int main()

{

  thread t1(print_odd);  // 创建一个打印奇数的线程

  thread t2(print_even);  // 创建一个打印偶数的线程

  t1.join();  // 等待线程t1执行完成

  t2.join();  // 等待线程t2执行完成

  return 0;

}

这个程序创建了两个线程`t1`和`t2`,分别用于打印奇数和偶数。在每个线程的循环中,我们使用了`this_thread::sleep_for`函数,让线程休眠10毫秒,以模拟交替执行的效果。最后,我们调用`t1.join()`和`t2.join()`等待两个线程执行完成。

运行这个程序,可以看到1到100的数字交替打印出来的效果。

总之,本文演示了如何使用C++语言编程实现两个线程的交替执行。虽然这个示例程序比较简单,但是它展示了使用C++多线程编程的基础知识,包括线程函数的定义、线程的创建和等待等操作。在实际的多线程编程中,我们可以根据具体需求使用更复杂的技术实现更加复杂的功能。

  
  

评论区

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