#ifndef THREADPOOL_H #define THREADPOOL_H #include #include #include #include #include #include #include #include class ThreadPool { public: explicit ThreadPool(size_t thread_count); ~ThreadPool(); // 提交任务 template void enqueue(F&& task) { { std::unique_lock lock(m_queue_mutex); m_tasks.emplace(std::forward(task)); } m_cv.notify_one(); } private: void worker_thread(); std::vector m_threads; std::queue> m_tasks; std::mutex m_queue_mutex; std::condition_variable m_cv; bool m_stop; }; #endif // THREADPOOL_H