溫馨提示×

c++ delay 怎樣避免阻塞主線程

c++
小樊
165
2024-07-26 15:34:14
欄目: 編程語言

在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()方法來等待線程結束。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女