编写cpp代码,实现两个线程,轮流打印数字1到10
时间: 2023-02-10 10:15:17 浏览: 122
首先,你需要在头文件中包含 `<thread>` 库,然后就可以使用 `std::thread` 来创建线程了。
你可以创建一个互斥量来保证两个线程之间的同步。在头文件中包含 `<mutex>` 库,然后可以使用 `std::mutex` 来创建互斥量。
这是一个实现的示例代码:
```cpp
#include <iostream>
#include <thread>
#include <mutex>
std::mutex mutex;
void print_number(int number) {
mutex.lock();
std::cout << number << std::endl;
mutex.unlock();
}
int main() {
std::thread t1(print_number, 1);
std::thread t2(print_number, 2);
t1.join();
t2.join();
return 0;
}
```
上面的代码创建了两个线程,分别打印数字 1 和 2。如果你想轮流打印数字 1 到 10,可以使用一个循环来实现。
这是一个实现的示例代码:
```cpp
#include <iostream>
#include <thread>
#include <mutex>
std::mutex mutex;
void print_number(int number) {
mutex.lock();
std::cout << number << std::endl;
mutex.unlock();
}
int main() {
for (int i = 1; i <= 10; i++) {
std::thread t1(print_number, i);
std::thread t2(print_number, i + 1);
t1.join();
t2.join();
}
return 0;
}
```
上面的代码会轮流打印数字 1 到 10。
阅读全文