21xrx.com
2024-11-22 07:27:09 Friday
登录
文章检索 我的文章 写文章
C++多线程打印ABC
2023-07-03 02:01:51 深夜i     --     --
C++ 多线程 打印 ABC

在C++中,多线程是一种并发的执行模式。使用多线程可以有效地提高程序的执行效率和响应速度,同时也能够更好地利用CPU资源,实现更复杂的功能。在本文中,我们将介绍一个使用多线程实现打印ABC的示例代码。

首先,我们需要定义三个线程函数,分别用于打印字母A、B、C。每个线程函数中,我们使用while循环来控制打印次数,然后通过锁机制来保证顺序打印和线程安全。


#include <iostream>

#include <thread>

#include <mutex>

using namespace std;

mutex mu; // 定义锁

void printA(){

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

    mu.lock(); // 上锁

    cout << "A";

    mu.unlock(); // 解锁

  }

}

void printB(){

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

    mu.lock(); // 上锁

    cout << "B";

    mu.unlock(); // 解锁

  }

}

void printC(){

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

    mu.lock(); // 上锁

    cout << "C";

    mu.unlock(); // 解锁

  }

}

然后,我们在主函数中创建三个线程,并依次启动它们,等待它们执行完后再退出程序。


int main(){

  // 创建三个线程

  thread t1(printA);

  thread t2(printB);

  thread t3(printC);

  // 启动三个线程

  t1.join();

  t2.join();

  t3.join();

  // 等待三个线程执行完后再退出程序

  return 0;

}

当我们运行这个程序时,我们可以看到控制台上反复打印出ABC字符串,每个字母都被打印10次,而且顺序也不会改变。

在这个示例中,我们使用了互斥锁来保证多线程操作的安全性,避免了不同线程之间的相互干扰和数据竞争问题。同时,我们也看到了多线程的高效和优势,使用多线程可以充分利用CPU资源,提高程序的并发性,实现更加复杂的业务逻辑。

通过这个示例的学习和实践,我们可以更好地理解多线程的应用和实现,为后续的多线程编程打下更加坚实的基础。

  
  

评论区

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