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