Для пулов объектов мы говорим, что всякий раз, когда клиент запрашивает ресурс, мы отдаем его из пула. Если я проверил один ресурс и изменил его состояние и проверил его. Что происходит при следующем запросе, позволяет ли пул клиенту проверить этот ресурс или этот ресурс теперь недействителен для пула?Проблема с шаблоном проектирования пула объектов
ответ
Если объект, выпущенный в бассейн, стал недействительным для повторного использования, пул будет несколько бессмысленным. Если класс требует инициализации или повторной инициализации, вы можете сделать это в методах пула get() или release(). Если для повторной инициализации требуется гораздо больше, чем простое назначение (например, пул сокетных объектов, которые не должны повторно использоваться в течение 5 минут), вам может потребоваться использовать выделенный поток менеджера пула, который эффективно разбивает пул на пару лужи - те объекты, которые доступны для повторного использования, и те, которые ожидают повторной инициализации.
Rgds, Martin
Или, в качестве альтернативы, вы не должны возвращать ресурс обратно в пул, пока ресурс не возвращается в исходное состояние. Например, представьте, что у вас есть веб-сервер с потоком прослушивателя и пул из 10 рабочих потоков. Поток слушателя принимает входящие HTTP-запросы и отправляет их в рабочие потоки для обработки. Рабочие потоки в пуле (не выгружены) находятся в их «исходном» состоянии, то есть в режиме ожидания или без обработки запроса. Когда поток слушателя проверяет рабочий поток и дает ему HTTP-запрос, рабочий поток начинает обрабатывать запрос; другими словами, его состояние «работает». Как только он обработает запрос и отправил http-ответ клиенту, он снова «простаивает» и возвращается в пул. Таким образом, все потоки, которые в настоящий момент не проверяются из пула, всегда находятся в исходном состоянии «без дела».
- 1. Проблема с шаблоном проектирования команд в C++
- 2. Проблема с шаблоном проектирования Java ORM POJO
- 3. Python Реализация шаблона проектирования пула объектов
- 4. Проблема при работе с шаблоном проектирования модуля в Javascript
- 5. Сериализация с шаблоном проектирования Singleton
- 6. Знакомство с шаблоном проектирования iCommand
- 7. Проблемы с шаблоном проектирования MVVM
- 8. В чем разница между шаблоном проектирования и шаблоном проектирования предприятия?
- 9. Приложение с шаблоном проектирования на основе ситуаций
- 10. API с шаблоном проектирования рабочей очереди
- 11. Шаблон проектирования: пул объектов соединений
- 12. Как предотвратить строительство с помощью пула объектов
- 13. Советы с шаблоном проектирования хранилища/сервисного уровня
- 14. javascriptMVC singleton с шаблоном проектирования инициализатора AJAX
- 15. Google Analytics с шаблоном проектирования MVP
- 16. Ошибка проектирования API с заводским шаблоном
- 17. Добавление новых команд с шаблоном проектирования команд
- 18. Проблема проектирования с Seam
- 19. Проблема пула соединений ASP.NET?
- 20. Проблема с шаблоном - Halogy
- 21. Проблема с шаблоном Wordpress
- 22. Проблема с шаблоном C++
- 23. Проблема с шаблоном Hibernate
- 24. Проблема с поисковым шаблоном
- 25. Проблема с шаблоном MessageBox
- 26. Проблема с шаблоном ViewHolder
- 27. Проблема с шаблоном PRG?
- 28. Проблема с шаблоном ListBox
- 29. NSRegularExpression - проблема с шаблоном
- 30. Проблема с шаблоном Makefile