You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
732 B

#pragma once
#include<cstdio>
#include<vector>
#include<string>
#include<queue>
#include<thread>
#include<functional>
#include<mutex>
#include<condition_variable>
#include<atomic>
#include<sys/syscall.h>
#include<unistd.h>
class ThreadPool
{
private:
std::string name_;
std::vector<std::thread>threads_; //线程s
std::queue<std::function<void()>>taskQueue_; //任务队列
std::mutex mutex_; //锁
std::condition_variable cv_; //条件变量
std::atomic<bool> stop_;
std::mutex mmutex_;
public:
ThreadPool(int _num,std::string _name);
~ThreadPool();
void AddTask(std::function<void()>);
void Stop();
size_t size();
};