源码可在https://github.com/learnmoreonce/SLAM 下载
文件:common/thread_pool.h
#ifndef CARTOGRAPHER_COMMON_THREAD_POOL_H_
#define CARTOGRAPHER_COMMON_THREAD_POOL_H_
#include <deque>
#include <functional>
#include <thread>
#include <vector>
#include "cartographer/common/mutex.h"
namespace cartographer {
namespace common {
/*
ThreadPool 是对c++11 thread的封装.
ThreadPool是线程数量固定的线程池,不可拷贝 和复制.
1,构造函数ThreadPool(int num_threads) 初始化一个线程数量固定的线程池。
2,Schedule(std::function<void()> work_item)添加想要ThreadPool执行的函数,
std::thread会在线程后台依次排队执行相关函数.
3,数据成员pool_是具体的线程,work_queue_是待执行的函数队列。
*/
// A fixed number of threads working on a work queue of work items. Adding a
// new work item does not block, and will be executed by a background thread
// eventually. The queue must be empty before calling the destructor. The thread
// pool will th

本文主要分析cartographer开源项目中common模块的thread_pool.h源码,该文件涉及线程池的实现,可在指定链接下载源码进行深入学习。
最低0.47元/天 解锁文章
530

被折叠的 条评论
为什么被折叠?



