Тестовое задание ...
От: Selavi  
Дата: 12.06.15 19:32
Оценка:
...выполнено слабо
К сожалению, добиться обратной связи на тему "что именно слабо" не удалось.

Пожалуйста, покритикуйте реализацию.

Задание:

Написать пул потоков CThreadPool, обрабатывающий задачи, производные от класса CTask.

Задачи переопределяют функцию virtual void CTask::Execute() = 0;

Пулу при инициализации задается число рабочих потоков:
bool CThreadPool::Init(int _numThreads);

Задачи добавляются для разных клиентов. Задачи одного клиента обрабатываются в том порядке, в котором они были добавлены. Разные клиенты обслуживаются параллельно.
bool CThreadPool::AddTask(int _clientId, CTask* _task);

Не должно быть "повисших" клиентов, даже если клиентов больше, чем потоков.
Т.е. поток должен обрабатывать разных клиентов по-очереди, а не одного до завершения всех его задач.


Реализация(яндекс диск, архив С++ проекта на Visual Studio):

https://yadi.sk/d/PDLZZDPih3QT4

В архиве есть описание хода мыслей



Заранее спасибо за потраченное время.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.