Python презентация

Содержание


Python
 MultiStr.decode(encoding = 'UTF-8',errors = 'strict’)
 encoding – это кодирование, которое будут использоваться.
Потоки Threadbs_str=BS(html.text, 'html.parser')
 bs_str=BS(html,'lxml')ЛоггированиеИспользование наследованияИспользование Lock()
 lock.acquire()
 try:
   ... доступ к разделяемому ресурсу
lock = Lock()
 lock.acquire() # заблокирует выполнение, если блокировка кем-то захвачена
with lock:
   ... доступ к разделяемому ресурсуlock.acquire(False)
 if not lock.acquire(False):
   ... не удалось заблокировать ресурс
lock.locked()
 if not lock.locked():
   # другой поток может начатьПроблемы Lock()
 import threading
 lock = threading.Lock()
 def get_first_part():
  Возможное решение
 def get_both_parts():
   lock.acquire()
   try:
 Решение с RLock()
 import threading
 lock = threading.RLock()
 def get_first_part():
 RLock()
 lock = threading.Lock()
 lock.acquire()
 lock.acquire() # вызов заблокирует выполнение
 lockBoundedSemaphore()
 semaphore = threading.BoundedSemaphore()
 semaphore.acquire() # уменьшает счетчик
 ... доступ кmax_connections = 10
  
 semaphore = threading.BoundedSemaphore(max_connections)Event()
 event = threading.Event()
 # поток клиента может подождать пока флажокCondition()
 lock = threading.RLock()
 condition_1 = threading.Condition(lock)
 condition_2 = threading.Condition(lock)# Поток производителя
 ... генерация товара
  
 condition.acquire()
 ... добавлениеsubprocess и TimerЗагрузка файловИспользование очередейМодуль multiprocessingLock()loggingPoolРабота с очередями



Слайды и текст этой презентации
Слайд 1
Описание слайда:
Python Multi


Слайд 2
Описание слайда:
Str.decode(encoding = 'UTF-8',errors = 'strict’) encoding – это кодирование, которое будут использоваться. errors – здесь могут быть даны установки других схем обработки ошибок. Значение по умолчанию для ошибок «strict», это означает, что ошибки кодирования поднимают UnicodeError. Другие возможные значения: ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ и любое другое имя, зарегистрированное через codecs.register_error().

Слайд 3
Описание слайда:
Потоки Thread

Слайд 4
Описание слайда:

Слайд 5
Описание слайда:
bs_str=BS(html.text, 'html.parser') bs_str=BS(html,'lxml')

Слайд 6
Описание слайда:
Логгирование

Слайд 7
Описание слайда:

Слайд 8
Описание слайда:

Слайд 9
Описание слайда:
Использование наследования

Слайд 10
Описание слайда:

Слайд 11
Описание слайда:

Слайд 12
Описание слайда:

Слайд 13
Описание слайда:
Использование Lock() lock.acquire() try: ... доступ к разделяемому ресурсу finally: lock.release() # освободить блокировку, что бы ни произошло

Слайд 14
Описание слайда:

Слайд 15
Описание слайда:
lock = Lock() lock.acquire() # заблокирует выполнение, если блокировка кем-то захвачена ... доступ к разделяемому ресурсу lock.release()

Слайд 16
Описание слайда:

Слайд 17
Описание слайда:
with lock: ... доступ к разделяемому ресурсу

Слайд 18
Описание слайда:

Слайд 19
Описание слайда:

Слайд 20
Описание слайда:
lock.acquire(False) if not lock.acquire(False): ... не удалось заблокировать ресурс else: try: ... доступ к разделяемому ресурсу finally: lock.release()

Слайд 21
Описание слайда:
lock.locked() if not lock.locked(): # другой поток может начать выполняться перед тем как мы перейдём к следующему оператору lock.acquire() # всё равно может заблокировать выполнение

Слайд 22
Описание слайда:
Проблемы Lock() import threading lock = threading.Lock() def get_first_part(): lock.acquire() try: # берем данные для первой части из общих ресурсах. finally: lock.release() return data def get_second_part(): lock.acquire() try: # берем данные для второй части из общих ресурсах. finally: lock.release() return data

Слайд 23
Описание слайда:
Возможное решение def get_both_parts(): lock.acquire() try: first = get_first_part() second = get_second_part() finally: lock.release() return first, second

Слайд 24
Описание слайда:
Решение с RLock() import threading lock = threading.RLock() def get_first_part(): lock.acquire() try: # берем данные для первой части из общих ресурсах. finally: lock.release() return data def get_second_part(): lock.acquire() try: # берем данные для второй части из общих ресурсах. finally: lock.release() return data

Слайд 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() # серверный поток может установить или сбросить флажок event.set() event.clear()

Слайд 29
Описание слайда:
Condition() lock = threading.RLock() condition_1 = threading.Condition(lock) condition_2 = threading.Condition(lock)

Слайд 30
Описание слайда:
# Поток производителя ... генерация товара condition.acquire() ... добавление товара в ресурс condition.notify() # отправляем уведомление о новом товаре condition.release()

Слайд 31
Описание слайда:
subprocess и Timer

Слайд 32
Описание слайда:
Загрузка файлов

Слайд 33
Описание слайда:
Использование очередей

Слайд 34
Описание слайда:
Модуль multiprocessing

Слайд 35
Описание слайда:

Слайд 36
Описание слайда:

Слайд 37
Описание слайда:
Lock()

Слайд 38
Описание слайда:
logging

Слайд 39
Описание слайда:
Pool

Слайд 40
Описание слайда:

Слайд 41
Описание слайда:
Работа с очередями

Слайд 42
Описание слайда:


Скачать презентацию на тему Python можно ниже:

Tags Python
Похожие презентации