c++ delay 怎样避免阻塞主线程

   2024-10-05 2560
核心提示:在C++中,可以使用多线程来避免阻塞主线程。主线程可以创建一个新的线程来处理需要延迟的任务,然后主线程可以继续执行其他操作

在C++中,可以使用多线程来避免阻塞主线程。主线程可以创建一个新的线程来处理需要延迟的任务,然后主线程可以继续执行其他操作。

以下是一个示例代码,展示如何使用C++的std::thread来创建一个新线程来处理延迟任务:

#include <iostream>#include <thread>#include <chrono>void delayedTask(){    // 模拟一个需要延迟执行的任务    std::this_thread::sleep_for(std::chrono::seconds(5));    std::cout << "Delayed task completed" << std::endl;}int main(){    std::cout << "Main thread started" << std::endl;    // 创建一个新的线程来执行延迟任务    std::thread t(delayedTask);    // 主线程可以继续执行其他操作    for (int i = 0; i < 5; i++)    {        std::cout << "Main thread working... " << i << std::endl;        std::this_thread::sleep_for(std::chrono::seconds(1));    }    // 等待延迟任务线程完成    t.join();    return 0;}

通过这种方式,主线程可以继续执行其他操作,而不会被延迟任务阻塞。延迟任务会在新线程中执行,当任务完成后,可以调用join()方法来等待线程结束。

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

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