温馨提示×

c++ delay函数和sleep区别

c++
小樊
110
2024-07-30 12:30:10
栏目: 编程语言

在C++中,通常用于延迟执行的函数有std::this_thread::sleep_forstd::this_thread::sleep_until。这两个函数都属于C++11引入的多线程库中的一部分。

  1. std::this_thread::sleep_for:这个函数接受一个std::chrono::duration类型的参数,表示要延迟的时间长度。例如,std::this_thread::sleep_for(std::chrono::milliseconds(1000))表示延迟1秒。这个函数会让当前线程进入睡眠状态,暂时释放CPU的控制权。

  2. std::this_thread::sleep_until:这个函数接受一个std::chrono::time_point类型的参数,表示要延迟到的时间点。例如,std::this_thread::sleep_until(std::chrono::system_clock::now() + std::chrono::seconds(1))表示延迟1秒。这个函数也会让当前线程进入睡眠状态,暂时释放CPU的控制权。

区别:

  • std::this_thread::sleep_for是相对时间延迟,传入的参数是延迟的时间长度;std::this_thread::sleep_until是绝对时间延迟,传入的参数是要延迟到的具体时间点。
  • 两个函数都会让当前线程进入睡眠状态,暂时释放CPU的控制权,但延迟的方式不同。

0