You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

std::call_once多线程并发调用:未完成时后续调用行为问询

std::call_once的线程等待行为说明

当你使用std::call_once确保一段代码仅执行一次时,如果首个线程的目标代码尚未执行完成,其他线程调用std::call_once会等待首个线程执行完成后才返回,这个行为完全符合C++标准。

C++标准明确规定,std::call_once会对所有调用它的线程进行同步:只要有一个线程正在执行传入的可调用对象,其余线程必须等待该执行完成,之后这些线程会直接返回,不会再触发目标代码的执行。

你测试得到的结果是符合标准规范的,并非测试特例。

内容的提问来源于stack exchange,提问作者CmedCmbadi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 08:42:32