如何在C++中实现多线程环境下的println

   2024-09-30 6730
核心提示:在 C++ 中,您可以使用 和thread 库来实现多线程环境下的 println#includeiostream#includethread#include mutexstd::mutex mtx;

在 C++ 中,您可以使用 和<thread> 库来实现多线程环境下的 println

#include<iostream>#include<thread>#include <mutex>std::mutex mtx; // 全局互斥锁void println(const std::string& msg) {    std::unique_lock<std::mutex> lock(mtx); // 加锁    std::cout<< msg<< std::endl;    lock.unlock(); // 解锁}void print_numbers() {    for (int i = 0; i < 10; ++i) {        println("Thread 1: " + std::to_string(i));        std::this_thread::sleep_for(std::chrono::milliseconds(100));    }}void print_letters() {    for (char c = 'A'; c <= 'J'; ++c) {        println("Thread 2: " + std::string(1, c));        std::this_thread::sleep_for(std::chrono::milliseconds(150));    }}int main() {    std::thread t1(print_numbers);    std::thread t2(print_letters);    t1.join();    t2.join();    return 0;}

这个示例中,我们创建了两个线程,一个打印数字,另一个打印字母。println 函数使用互斥锁确保在多线程环境下输出的正确性。当一个线程获得锁时,另一个线程必须等待,直到锁被释放。这样可以确保每次只有一个线程访问 std::cout,从而避免输出混乱。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号