Evgenii Legotckoi
Sept. 26, 2018, 5:55 p.m.

Example - Object Pool in Python

Example of the design pattern An object pool in the Python programming language.


  1. """
  2. Offer a significant performance boost; it is most effective in
  3. situations where the cost of initializing a class instance is high, the
  4. rate of instantiation of a class is high, and the number of
  5. instantiations in use at any one time is low.
  6. """
  7.  
  8.  
  9. class ReusablePool:
  10. """
  11. Manage Reusable objects for use by Client objects.
  12. """
  13.  
  14. def __init__(self, size):
  15. self._reusables = [Reusable() for _ in range(size)]
  16.  
  17. def acquire(self):
  18. return self._reusables.pop()
  19.  
  20. def release(self, reusable):
  21. self._reusables.append(reusable)
  22.  
  23.  
  24. class Reusable:
  25. """
  26. Collaborate with other objects for a limited amount of time, then
  27. they are no longer needed for that collaboration.
  28. """
  29.  
  30. pass
  31.  
  32.  
  33. def main():
  34. reusable_pool = ReusablePool(10)
  35. reusable = reusable_pool.acquire()
  36. reusable_pool.release(reusable)
  37.  
  38.  
  39. if __name__ == "__main__":
  40. main()

Comments

Only authorized users can post comments.
Please, Log in or Sign up
  • Last comments
  • Evgenii Legotckoi
    March 9, 2025, 9:02 p.m.
    К сожалению, я этого подсказать не могу, поскольку у меня нет необходимости в обходе блокировок и т.д. Поэтому я и не задавался решением этой проблемы. Ну выглядит так, что вам действитель…
  • VP
    March 9, 2025, 4:14 p.m.
    Здравствуйте! Я устанавливал Qt6 из исходников а также Qt Creator по отдельности. Все компоненты, связанные с разработкой для Android, установлены. Кроме одного... Когда пытаюсь скомпилиров…
  • ИМ
    Nov. 22, 2024, 9:51 p.m.
    Добрый вечер Евгений! Я сделал себе авторизацию аналогичную вашей, все работает, кроме возврата к предидущей странице. Редеректит всегда на главную, хотя в логах сервера вижу запросы на правильн…
  • Evgenii Legotckoi
    Oct. 31, 2024, 11:37 p.m.
    Добрый день. Да, можно. Либо через такие же плагины, либо с постобработкой через python библиотеку Beautiful Soup
  • A
    Oct. 19, 2024, 5:19 p.m.
    Подскажите как это запустить? Я не шарю в программировании и кодинге. Скачал и установаил Qt, но куча ошибок выдается и не запустить. А очень надо fb3 переконвертировать в html