c++多线程交替打印
时间: 2023-08-22 08:04:55 浏览: 59
你可以使用互斥锁(mutex)和条件变量(condition variable)来实现C++多线程的交替打印。下面是一个简单的示例代码:
```cpp
#include <iostream>
#include <thread>
#include <mutex>
#include <condition_variable>
std::mutex mtx;
std::condition_variable cv;
bool isOdd = true;
void printNumber(int number) {
for (int i = 1; i <= number; i++) {
std::unique_lock<std::mutex> lock(mtx);
// 等待当前线程应该打印的数字
cv.wait(lock, [i]() { return (i % 2 == 0) == isOdd; });
std::cout << i << " ";
// 切换到另一个线程打印数字
isOdd = !isOdd;
// 通知另一个线程可以开始打印数字了
cv.notify_one();
}
}
int main() {
int n = 10; // 打印的最大数字
std::thread t1(printNumber, n);
std::thread t2(printNumber,