Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
serste
Сообщений: n/a
#1

Задача по многопоточному программированию - C++

17.10.2011, 18:48. Просмотров 914. Ответов 0
Метки нет (Все метки)

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

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

Используя С++, 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() могут работать долго.

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

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

Если возможно, хотелось бы, чтобы кто-нибудь рассказал мне, что именно в данном коде не правильно
Вложения
Тип файла: zip Task.zip (8.9 Кб, 63 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2011, 18:48     Задача по многопоточному программированию
Посмотрите здесь:

C++ Задача по программированию
Задача по программированию C++
Олимпиадная задача по программированию C++
C++ не решается задача по параллельному программированию
C++ Задача по программированию. Цикл For
Задача с массивами по системному программированию C++
C++ задача по программированию С++
Геометрическая задача по программированию (C++) C++
задача по программированию пожалуйста с++(масив) C++
Шарики(Задача по олимпиадному программированию) C++
C++ сложная задача с олимпиады по программированию
C++ Задача с технокубка по программированию

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru