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

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

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

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

17.10.2011, 18:48. Просмотров 927. Ответов 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++
Друзья, помогите с задачей по программированию. Дан массив t из 10 элементов, в каждом находится структура x в которой соответственно...

Задача по программированию - C++
Составить программу упорядочения элементов по убыванию во втором столбце матрицы A(N,N).

задача по программированию С++ - C++
Помогите пожалуйста написать задачу на C++ по фото . Задача B2

Геометрическая задача по программированию (C++) - C++
Здравствуйте. Дали такое вот задание по программированию, реализовывать нужно на плюсах, но есть некоторое недопонимание того, что...

Задача с технокубка по программированию - C++
Лайнландия состоит из n городов, которые расположены на оси Ox. Координата i-го из городов равна xi. Поликарп прошел от одного города...

Олимпиадная задача по программированию - C++
Помогите написать программу для решения следующей задачи (из Всесибирской Открытой Олимпиады Школьников по информатике за 2011-2012 года): ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.10.2011, 18:48
Привет! Вот еще темы с ответами:

Задача по программированию. Цикл For - C++
Написать программу, которая будет выводить на консоль значения факториала целых чисел из интервала от n1 до n2. Предвратительно написать...

сложная задача с олимпиады по программированию - C++
Перевозчику необходимо доставить груз из одного города (А) в другое (В). Известно, что при доставке груза перевозчик несет затраты...

Шарики(Задача по олимпиадному программированию) - C++
Решение(не идеально,я знаю): #include <iostream> #include <stdio.h> #include <math.h> using namespace std; int main(){ ...

задача по программированию пожалуйста с++(масив) - C++


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

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

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