跳转至

ev-vroom-semaphore-search-001

字段 值
项目 VROOM-Project/vroom
固定 commit 43dd7d0b8b56
路径 src/problems/vrp.h
行段 L205-L207
特性 闩锁、屏障与计数信号量
许可证 BSD-2-Clause
代码来源 项目源码
级别 manual
审核 zyuhao7 @ 2026-10-27
测试代码 否
发现方式 manual

用法

用静态容量的 counting_semaphore 限制同时进行的搜索数

为什么典型

信号量上限在编译期固定为 32,运行期计数取实际线程数,acquire/release 包住一次完整搜索。

摘录

    const auto actual_nb_threads = std::min(nb_searches, nb_threads);
    assert(actual_nb_threads <= 32);
    std::counting_semaphore<32> semaphore(actual_nb_threads);

备注

生产路径;求解器按可用线程数限制并发搜索,避免线程数量超过硬件能力。

查看固定 commit 源码 · 返回证据索引