Тестовая Задача На Многопоточность

Тема в разделе "Общие вопросы по С и С++", создана пользователем serste, 17 окт 2011.

Статус темы:
Закрыта.
  1. serste

    serste Гость

    Здравствуйте!

    Я новичок в многопоточном программировании, необходимо было выполнить тестовое задание:

    Используя С++, Win32 API и STL корректно реализовать следующую задачу:
    Откуда-то дано:
    class Request
    {
    };
    // возвращает NULL если нужно завершить процесс, либо указатель на память,
    // которую в дальнейшем требуется удалить
    Request* GetRequest() throw();
    // обрабатывает запрос, но память не удаляет
    void ProcessRequest(Request* request) throw();
    const int NumberOfThreads = 2;

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

    В ответ на это задание я написал код, содержащийся в приложении.

    Мне было сказано, что этот код имеет два недостатка (в данном случае это эквивалентно тому, что данный код - один сплошной недостаток :) ):
    1) плохое знание WinAPI: объекты синхронизации
    2) код написан с использованием опасных конструкций в плане обработки исключений

    Если возможно, хотелось бы, чтобы кто-нибудь рассказал мне, что именно в данном коде не правильно
     

    Вложения:

    • Task.zip
      Размер файла:
      8,9 КБ
      Просмотров:
      17
Загрузка...
Похожие Темы - Тестовая Задача На
  1. Янчик
    Ответов:
    0
    Просмотров:
    478
  2. TrishaRay
    Ответов:
    1
    Просмотров:
    778
  3. elzim
    Ответов:
    0
    Просмотров:
    929
  4. ShaoKahn
    Ответов:
    0
    Просмотров:
    1.117
  5. eremin-sanek
    Ответов:
    3
    Просмотров:
    1.104
Статус темы:
Закрыта.

Поделиться этой страницей