Содержание
- 2. Str.decode(encoding = 'UTF-8',errors = 'strict’) encoding – это кодирование, которое будут использоваться. errors – здесь могут
- 3. Потоки Thread
- 5. bs_str=BS(html.text, 'html.parser') bs_str=BS(html,'lxml')
- 6. Логгирование
- 9. Использование наследования
- 13. Использование Lock() lock.acquire() try: ... доступ к разделяемому ресурсу finally: lock.release() # освободить блокировку, что бы
- 15. lock = Lock() lock.acquire() # заблокирует выполнение, если блокировка кем-то захвачена ... доступ к разделяемому ресурсу
- 17. with lock: ... доступ к разделяемому ресурсу
- 20. lock.acquire(False) if not lock.acquire(False): ... не удалось заблокировать ресурс else: try: ... доступ к разделяемому ресурсу
- 21. lock.locked() if not lock.locked(): # другой поток может начать выполняться перед тем как мы перейдём к
- 22. Проблемы Lock() import threading lock = threading.Lock() def get_first_part(): lock.acquire() try: # берем данные для первой
- 23. Возможное решение def get_both_parts(): lock.acquire() try: first = get_first_part() second = get_second_part() finally: lock.release() return first,
- 24. Решение с RLock() import threading lock = threading.RLock() def get_first_part(): lock.acquire() try: # берем данные для
- 25. RLock() lock = threading.Lock() lock.acquire() lock.acquire() # вызов заблокирует выполнение lock = threading.RLock() lock.acquire() lock.acquire() #
- 26. BoundedSemaphore() semaphore = threading.BoundedSemaphore() semaphore.acquire() # уменьшает счетчик ... доступ к общему ресурсу semaphore.release() # увеличивает
- 27. max_connections = 10 semaphore = threading.BoundedSemaphore(max_connections)
- 28. Event() event = threading.Event() # поток клиента может подождать пока флажок будет установлен event.wait() # серверный
- 29. Condition() lock = threading.RLock() condition_1 = threading.Condition(lock) condition_2 = threading.Condition(lock)
- 30. # Поток производителя ... генерация товара condition.acquire() ... добавление товара в ресурс condition.notify() # отправляем уведомление
- 31. subprocess и Timer
- 32. Загрузка файлов
- 33. Использование очередей
- 34. Модуль multiprocessing
- 37. Lock()
- 38. logging
- 39. Pool
- 41. Работа с очередями
- 43. Скачать презентацию