在C++中,可以使用多線程來避免阻塞主線程。主線程可以創(chuàng)建一個新的線程來處理需要延遲的任務(wù),然后主線程可以繼續(xù)執(zhí)行其他操作。
以下是一個示例代碼,展示如何使用C++的std::thread來創(chuàng)建一個新線程來處理延遲任務(wù):
#include <iostream>
#include <thread>
#include <chrono>
void delayedTask()
{
// 模擬一個需要延遲執(zhí)行的任務(wù)
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;
// 創(chuàng)建一個新的線程來執(zhí)行延遲任務(wù)
std::thread t(delayedTask);
// 主線程可以繼續(xù)執(zhí)行其他操作
for (int i = 0; i < 5; i++)
{
std::cout << "Main thread working... " << i << std::endl;
std::this_thread::sleep_for(std::chrono::seconds(1));
}
// 等待延遲任務(wù)線程完成
t.join();
return 0;
}
通過這種方式,主線程可以繼續(xù)執(zhí)行其他操作,而不會被延遲任務(wù)阻塞。延遲任務(wù)會在新線程中執(zhí)行,當(dāng)任務(wù)完成后,可以調(diào)用join()方法來等待線程結(jié)束。