21xrx.com
2024-12-22 20:45:48 Sunday
登录
文章检索 我的文章 写文章
C++双线程交替输出奇数和偶数
2023-07-13 13:54:19 深夜i     --     --
C++ 双线程 交替输出 奇数 偶数

C++作为一门非常流行的编程语言,其功能强大,用途广泛。其中,线程是C++编程中的重要概念之一。线程是指计算机能够并行处理多个任务的能力,即同时执行多个程序或子程序,可以提高程序的运行效率。在C++中,线程的使用非常灵活,可以完成许多有趣的任务。

本文将介绍如何使用C++双线程交替输出奇数和偶数。具体实现过程如下:

1. 定义一个变量counter,代表当前要输出的数。

2. 定义两个线程oddThread和evenThread,分别用来输出奇数和偶数。

3. oddThread输出奇数,即在一个while循环中,每次将counter加1,如果加1后的数是偶数,则将counter加1。然后输出当前的counter值,再休眠一段时间。

4. evenThread输出偶数,即在一个while循环中,每次将counter加1,如果加1后的数是奇数,则将counter加1。然后输出当前的counter值,再休眠一段时间。

5. 在main函数中,启动两个线程oddThread和evenThread,并等待它们执行完毕。

下面是实现代码:


#include <iostream>

#include <thread>

#include <chrono>

int counter = 0;

void oddThread()

{

  while (counter < 10)

  {

    counter++;

    if (counter % 2 == 0)

    {

      counter++;

    }

    std::cout << "Odd Thread: " << counter << std::endl;

    std::this_thread::sleep_for(std::chrono::seconds(1));

  }

}

void evenThread()

{

  while (counter < 10)

  {

    counter++;

    if (counter % 2 == 1)

    {

      counter++;

    }

    std::cout << "Even Thread: " << counter << std::endl;

    std::this_thread::sleep_for(std::chrono::seconds(1));

  }

}

int main()

{

  std::thread t1(oddThread);

  std::thread t2(evenThread);

  t1.join();

  t2.join();

  return 0;

}

上述代码中,我们定义了一个全局变量counter,作为奇数和偶数的输出值。然后分别定义了两个线程oddThread和evenThread,用来交替输出奇数和偶数。在while循环中,我们使用counter判断奇偶性,并进行输出。最后在main函数中,我们启动两个线程,并使用join()函数等待它们执行完成。

本文介绍了如何使用C++双线程交替输出奇数和偶数,这个示例可能看起来非常简单,但它展示了线程编程的一些基本概念和实际应用。希望这篇文章能够帮助读者进一步了解C++线程编程,并能够为读者在实际编程中提供一些启示。

  
  

评论区

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