Вау, в Python будет можно по желанию отключить GIL. В мейн буквально пару часов назад вмержили эту настройку
https://github.com/python/cpython/pull/116338
GIL (Global Interpreter Lock) — это механизм в CPython, который предотвращает одновременное выполнение нескольких потоков.
Это всю дорогу означало, что даже если мы пишем программу на Python как многопоточную, то в любой момент времени может выполняться только один тред.
С одной стороны, это ограничивало возможности параллельного выполнения кода даже на многоядерных процессорах. С другой, облегчало управление памятью в Python: такое решение исключает все особенности многопоточного программирования и делает проще работу программиста.
Наличие GIL годами было предметом дебатов и критики из-за ограничений на многопоточность. Я рада, что парадигма однопоточности Python наконец сдвигается: это реально изменит разработку на этом языке.
https://github.com/python/cpython/pull/116338
GIL (Global Interpreter Lock) — это механизм в CPython, который предотвращает одновременное выполнение нескольких потоков.
Это всю дорогу означало, что даже если мы пишем программу на Python как многопоточную, то в любой момент времени может выполняться только один тред.
С одной стороны, это ограничивало возможности параллельного выполнения кода даже на многоядерных процессорах. С другой, облегчало управление памятью в Python: такое решение исключает все особенности многопоточного программирования и делает проще работу программиста.
Наличие GIL годами было предметом дебатов и критики из-за ограничений на многопоточность. Я рада, что парадигма однопоточности Python наконец сдвигается: это реально изменит разработку на этом языке.
GitHub
gh-116167: Allow disabling the GIL with `PYTHON_GIL=0` or `-X gil=0` by swtaarrs · Pull Request #116338 · python/cpython
In free-threaded builds, running with PYTHON_GIL=0 or -X gil=0 will now disable the GIL. #116322 and #116329 track follow-up work to re-enable the GIL when loading an incompatible extension, and to...
Вы, наверное, знаете, что из-за того, что числа в памяти представлены в двоичной форме, в Python есть ошибка вида
В Python модуль
А вот кто скажет, почему возникает разница в примерах ниже?
1️⃣
2️⃣
Жду ваши ответы в комментариях!
print(0.1 + 0.2)
# 0.30000000000000004
В Python модуль
decimal
поддерживает точную арифметику десятичных чисел. Она важна в областях, требующих высокой точности, например, в финансах или научных расчетах.А вот кто скажет, почему возникает разница в примерах ниже?
1️⃣
from decimal import Decimal
a = Decimal(0.1)
b = Decimal(0.2)
print(a + b)
# 0.3000000000000000166533453694
2️⃣
a = Decimal('0.1')
b = Decimal('0.2')
print(a + b)
# 0.3
Жду ваши ответы в комментариях!