Я пытаюсь реализовать простой пул потоков в C++ следующим образом:C++ Simple Pool Thread
class worker {
public:
worker();
thread mThread;
private:
void run();
};
worker::worker() {
(this->mThread = thread(&worker::run, this)).detach();
}
class threadpool {
public:
threadpool(int size);
void addTask();
private:
vector<worker> workers;
};
Но когда я добавить конструктор ThreadPool:
threadpool::threadpool(int size) {
this->workers = vector<worker>(size, worker());
}
я получаю «попытку ссылаться на удаленную функцию ", которая, насколько я знаю, означает, что где-то в моем коде я пытаюсь скопировать поток. Есть ли способ решить эту проблему?
Закрыть, вы пытались назначить тему. Вы также избегаете использования списков инициализаторов, поэтому вы видите эту ошибку. – StoryTeller
Можете ли вы привести пример того, как сделать все правильно? –