![]() |
|
Модераторы: Poseidon |
![]()
|
|
| Atum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
Всем добрый день !
Требуется реализовать макет Систему массового обслуживания на Java - со следующей логикой ! В Систему поступает поток заявок . Требуется реализовать логику и создать пул для обработки заявок: 1.создать очередь на параллельную обработку 10 заявок (Это pool) из воркеров которые всегда работают . 2. время обработки каждой заявки воркером - не более T(обр) = 2 секунд. (если это время превышено - то такая заявка прекращает выполниться и исполняемый автомат освобождается )! 3. если заявка пришла и все автоматы заняты - она ждет T(oжид) = 3 секунды , и если все автоматы заняты - эта заявка уходит из очереди . Как такое запрограммировать? Это сообщение отредактировал(а) Atum - 4.5.2012, 17:16 |
|||
|
||||
| jk1 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1168 Регистрация: 17.10.2008 Где: Санкт-Петербург Репутация: 1 Всего: 75 |
Для домашних заданий, курсовых, существует "Центр Помощи".
Тема перенесена! -------------------- Opinions are like assholes — everybody has one |
|||
|
||||
| IBS |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 29.7.2008 Где: Белоруссия Репутация: нет Всего: 6 |
||||
|
||||
| Atum |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
1.создать очередь на параллельную обработку 10 заявок (Это pool) из воркеров которые всегда работают . 2. время обработки каждой заявки воркером - не более T(обр) = 2 секунд. (если это время превышено - то такая заявка прекращает выполниться и исполняемый автомат освобождается )! 3. если заявка пришла и все автоматы заняты - она ждет T(oжид) = 3 секунды , и если все автоматы заняты - эта заявка уходит из очереди . что непонятно : 1.как организовать стек бесконечной очереди с ожиданием ! 2.обработчик этой очереди из 10 параллельно работающих каналов (воркеров)! желательно пример (код) |
|||
|
||||
| IBS |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 214 Регистрация: 29.7.2008 Где: Белоруссия Репутация: нет Всего: 6 |
Вкратце алгоритм будет выглядеть так:
1) генерируем произвольной число заявок(в разумных пределах) и задаем время необходимое на их обработку 2) передаем это значение на объект управления 3) В объекте управления проверяем освободились ли кассы 4) Проверяем не пора ли кого убрать из очереди. 5) отправляем элементы из очереди в кассы(если есть, если возможно) 6) работаем с пришедшими заявками(пытаемся пихнуть на кассы, если нет - суем в очередь и приписываем им тек. момент) 7) идем к шагу 1 По объектам: -Каждая касса хранит значение времени когда она освободится и флаг(определяем свободна или нет) -при каждом входе в объект управления пытаемся освободить кассы(если текущее время >= времени освобождения, то переставляем флаг) Код писать нет времени, да и Java я знаю только на уровне базового синтаксиса. Все что могу здесь еще посоветовать - это не пишите все это "в лоб". Тут сначала нужно сесть и спроектировать модель. (все необходимы классы, их поля, методы) |
|||
|
||||
| Atum |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 265 Регистрация: 3.10.2008 Репутация: нет Всего: нет |
Что есть :
класс список - который удаляет первый элемент из себя автоматом если он пролежал в нем больше 2-х секунд. UPD ! ввел переменную removeCount изменил сигнатуру run() но все равно не тот эффект ! что не так ! я хочу чтобы удалялись все элементы которые я добавил две секунды назад! т.е. их надо как то метить и по истечении срока годности удалять все сразу ! Плюс нет синхронизации :( при удалении и добавлении элементов (добавлять элементы могу многие потоки) к функции removeFirst() как раз и обращаются воркеры, когда один из них становится свободным .
Это сообщение отредактировал(а) Atum - 5.5.2012, 17:00 |
||||
|
|||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |