Crow:run的流程2 建立io_service及线程

void Server::run()
{
    uint16_t worker_thread_count = concurrency_ - 1;
    for (int i = 0; i < worker_thread_count; i++)
        io_service_pool_.emplace_back(new asio::io_service());
    get_cached_date_str_pool_.resize(worker_thread_count);
    task_timer_pool_.resize(worker_thread_count);
    ...
private:
    std::vector<std::unique_ptr<asio::io_service>> io_service_pool_;
    std::vector<std::function<std::string()>> get_cached_date_str_pool_;
    std::vector<detail::task_timer*> task_timer_pool_;
}

run先获取worker线程数量,也就是真正处理http请求的线程数量

然后创建worker线程数量相同的io_service,并压入io_service_pool_

先不管get_cached_date_str_pool_和task_timer_pool_

void Server::run()
{
    ...
    std::vector<std::future<void>> v;
    std::atomic<int> init_count(0);
    for (uint16_t i = 0; i < work

相关推荐

  1. Crow:run流程2 建立io_service线

    2023-12-31 19:34:05       61 阅读
  2. 线执行流程

    2023-12-31 19:34:05       58 阅读
  3. 2. C++ 线使用

    2023-12-31 19:34:05       44 阅读
  4. 一个线进入线池后工作流程

    2023-12-31 19:34:05       25 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-31 19:34:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-31 19:34:05       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-31 19:34:05       82 阅读
  4. Python语言-面向对象

    2023-12-31 19:34:05       91 阅读

热门阅读

  1. C语言K&R圣经笔记 4.10递归 4.11 C预处理

    2023-12-31 19:34:05       53 阅读
  2. 归并排序模板

    2023-12-31 19:34:05       50 阅读
  3. llvm后端之指令选择源码分析

    2023-12-31 19:34:05       57 阅读
  4. element ui级连选择,lazyLoad选择地区

    2023-12-31 19:34:05       59 阅读
  5. MongoDB聚合:$replaceRoot

    2023-12-31 19:34:05       54 阅读
  6. EasyExcel简单合并单元格数据工具类

    2023-12-31 19:34:05       72 阅读
  7. couldn‘t find “libmmkv.so“ android8.1.0 Nexus 5X

    2023-12-31 19:34:05       75 阅读
  8. GTK 使用 glade 4 正确书写的方法

    2023-12-31 19:34:05       61 阅读