
内容来自:程序员老廖


这是一个高性能的多线程任务队列系统,主要提供以下功能:
开源项目源地址: https://github.com/ouxianghui/task-queue.git
视频讲解:别盯着C++线程池了,来看看C++高性能多线程任务队列系统的实现,可以写进简历的项目
(非老廖开源,老廖这里只是加以分析和改进,让大家更容易掌握)

不同的队列使用的线程是独立的,可以根据不同的业务投递到对应的队列,比如有些队列专门执行耗时的任务。




现代C++特性在项目中的使用原因和优势:
void postTask(std::unique_ptr<QueuedTask> task);使用原因:
pending_queue_.push(std::pair<OrderId, std::unique_ptr<QueuedTask>>(order, std::move(task)));使用原因:
template <class Closure>
void postTask(Closure&& closure) {
postTask(ToQueuedTask(std::forward<Closure>(closure)));
}使用原因:
TaskQueueSTD(std::string_view queueName);使用原因:
thread_ = std::thread([this]{
CurrentTaskQueueSetter setCurrent(this);
this->processTasks();
});std::unique_lock<std::mutex> lock(pending_mutex_);auto tick = milliseconds();这些特性的使用体现了现代C++的最佳实践,既保证了代码的安全性和性能,又提高了可维护性和灵活性。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。