Пул — это структура данных, из которой мы можем доставать объекты заданного типа, а затем удалять их оттуда. Пул содержит максимальное количество объектов, которое задается при его создании.
Также вам может показаться, что такая тема как http://acc-service.ru/13/167/page1.htm никак не связана и даже не тематична с программированием. Хотя, может быть и связана.
В любом случае все-таки зайдите на сайт acc-service.ru
Тема автосигнализация с автозапуском там представлена весьма широко. На том сайте можно узнать много интересного на тему автосигнализация с автозапуском
Что означает вообще тема автосигнализация с автозапуском, где найти тему доставка обедов в офис - про это написано на сайте acc-service.ru
Это очень важная для многих людей тема - автосигнализация с автозапуском Спасибо сайту acc-service.ru за информацию на тему автосигнализация с автозапуском
Используя темно-серый цвет для размещенного объекта и светло-серый для места, готового для размещения объекта, мы можем проиллюстрировать пул следующим образом.
Pool:
Класс Pool можно определить так:
templateclass Pool { // Пул из N объектов типа T public:
Pool(); // создаем пул из N объектов типа T
T* get(); // берем объект типа T из пула;
// если свободных объектов нет,
// возвращаем 0
// возвращаем объект типа T, взятый // из пула с помощью функции get()
// количество свободных объектов типа T
void free(T*);
int available() const; private:
// место для T[N] и данные, позволяющие определить, какие объекты // извлечены из пула, а какие нет (например, список свободных // объектов)
};
Каждый объект класса Pool характеризуется типом элементов и максимальным количеством объектов. Его можно использовать примерно так, как показано ниже.
Pool sb_pool;
Pool indicator_pool;
Small_buffer* p : // . . .
sb_pool.free(p);
sb_pool.get()
Гарантировать, что пул никогда не исчерпается, — задача программиста. Точный смысл слова “гарантировать” зависит от приложения. В некоторых системах программист должен написать специальный код, например функцию get(), которая никогда не будет вызываться, если объектов в пуле больше нет. В других системах программист может проверить результат работы функции get() и сделать какие-то корректировки, если результат равен нулю. Характерным примером второго подхода является телефонная система, разработанная для одновременной обработки более 100 тыс. звонков. Для каждого звонка выделяется некий ресурс, например буфер номеронабирателя. Если система исчерпывает количество номеронабирателей (например, функция dial_buffer_pool.get() возвращает 0), то она запрещает создавать новые соединения (и может прервать несколько существующих соединений, для того чтобы освободить память). В этом случае потенциальный абонент может вновь попытаться установить соединение чуть позднее.
Естественно, наш шаблонный класс Pool представляет собой всего лишь один из вариантов общей идеи о пуле. Например, если ограничения на использование памяти не такие строгие, можем определить пулы, в которых количество элементов определяется конструктором, и даже пулы, количество элементов в которых может впоследствии изменяться, если нам потребуется больше объектов, чем было указано вначале.
Опубликовал katy
April 25 2015 10:06:19 ·
0 Комментариев ·
4096 Прочтений ·
• Не нашли ответ на свой вопрос? Тогда задайте вопрос в комментариях или на форуме! •
Комментарии
Нет комментариев.
Добавить комментарий
Рейтинги
Рейтинг доступен только для пользователей.
Пожалуйста, залогиньтесь или зарегистрируйтесь для голосования.
Нет данных для оценки.
Гость
Вы не зарегистрированны? Нажмите здесь для регистрации.