06:44
1,0×
00:00/06:44
320,2 тыс смотрели · 3 года назад
GIL -Мьютекс - Семафор - Python Мьютексы - (mutex - mutually exclusive "взаимное исключение") - также защёлка - примитив синхронизации, механизм изоляции для синхронизации доступа нескольких потоков к совместно используемым ресурсам. Используются некоторыми операционными системами для регулирования доступа нескольких процессов к совместно используемым данным. Семафор (semaphore) - примитив синхронизации работы процессов и потоков, в основе которого лежит счётчик над которым можно производить две операции wait и signal и операция инициализации init. Каждый процесс должен исключать для всех других процессов возможность одновременно с ним обращаться к этим данными (взаимоисключение). Мьютекс - это переменная, связанная с совместно используемым ресурсом, например, с буфером. Чтобы получить доступ к ресурсу, поток должен сначала получить мьютекс для этого ресурса. Доступ других потоков к ресурсу невозможен, пока владелец мьютекса его не освободит. Когда мьютекс станет доступен, поток получит мьютекс, переведя его в состояние "используется". Синхронизация при помощи мьютексных семафоров позволяет в каждый момент выполнять запись в область памяти совместного использования только одному потоку. GIL (Global interpreter Lock, глобальная блокировка интерпретатора) - это мьютекс или механизм, обеспечивающий при использовании интерпретатора СPython, безопасную работу с потоками. - то есть он позволяет задействовать только один поток операционной системы в конкретный момент времени для выполнения байт-кода Python. В результате нельзя ускорить Python - код, интенсивно использующий ресурсы процессора, распределив вычислительную нагрузку по нескольким потокам. Эта защита нужна для того, чтобы мы не могли одновременно менять ссылки на объекты в Python, которые приведут к ошибке. Более подробно: habr.com/...360
537 читали · 2 года назад
Что такое магические методы в Python и как их использовать
Одной из менее известных, но ценных функций Python является возможность реализации магических методов на объектах. Используя волшебные методы, мы можем написать более чистый код, интуитивно понятный и простой для понимания. С помощью magic methods мы можем создавать интерфейсы для взаимодействия с объектами таким образом, чтобы они казались более питоновскими. В этой статье вы познакомитесь с магическими методами, обсудите лучшие практики их создания и изучите распространенные магические методы, с которыми вы столкнетесь...