C++中的时控函数集锦

C++里的时控函数真是个宝藏,用得顺手的话,多定时操作、线程控制都能搞定。

std::chrono库开始讲吧,这套东西在 C++11 之后挺常用了。像std::this_thread::sleep_for(),你传个std::chrono::seconds(3),线程就老老实实等 3 秒。还有sleep_until(),指定个未来的时间点,也挺方便。

早期 C 风格的time()sleep()也有,但不推荐了,太老了,而且线程不安全。你真在意精度的话,std::chrono::high_resolution_clock是个不错的选择,测函数耗时实用。

有时候你还得搞点异步任务,比如配合std::async做延迟执行。写法不复杂,任务一丢、wait_for一挂,定时就搞定了。

如果你在 Linux 上开发,POSIX 那套sleep()alarm()也能用,简单事儿交给它们还蛮省事。

多线程场景里,std::condition_variable配合unique_lock能搞定线程间的等待和通知,用得好能少多 bug。

Boost 那边也挺丰富的,boost::asio::deadline_timertimer支持异步操作,搞高性能服务还是比较吃香的。

另外,如果你是在写服务端或界面程序,像Qtlibevent里的事件循环也能搞定定时任务,响应也快,代码也清爽。

,选工具得看场景,简单用sleep_for,复杂上Boost或者async。别死磕某一个,灵活组合才舒服。

rar 文件大小:1.67KB