Skip to content

antochvyacheslav/TestTask_ThreadProcessRequest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 

Repository files navigation

TestTask_ThreadProcessRequest

Откуда-то дано: class Request {};

// возвращает nullptr если нужно завершить процесс, либо указатель на память, которую в дальнейшем требуется удалить Request* GetRequest();

// обрабатывает запрос, но память не удаляет void ProcessRequest(Request* request);

const int NumberOfThreads = 2;

Основной поток должен:

  1. Запустить несколько рабочих потоков (NumberOfThreads).
  2. Класть в одну очередь заданий задачи до тех пор, пока GetRequest() не вернёт nullptr.
  3. Корректно остановить рабочие потоки. Они должны доделать текущий ProcessRequest, если он имеется, и остановиться. Если имеются необработанные задания, не обращать на них внимания.
  4. Завершить программу.

Рабочий поток должен:

  1. Обрабатывать поступающие через очередь запросы с помощью ProcessRequest.
  2. Завершиться, как только основной поток ему это скомандует.

Вызовы GetRequest() и ProcessRequest() могут работать долго.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages