Спасибо! Наконец-то понял, зачем нужен GIL. Но у меня вопрос. Если вся эта история с GIL обусловлена риском перемешивания в стеке инструкций от разных потоков, то почему тогда нельзя переделать PVM? Почему нельзя использовать несколько стеков или придумать другой подход?
спасибо за материал! ты говоришь, что благодаря GIL однопоточные программы работают быстрее, а почему так? слышал такую информацию, но не понимаю, почему
Я думал, что, если напишу функцию реквеста на некии адресс и выполню ее в 5 потоков, то все реквесты вылетят в одном моменте времени. Получается между каждым реквестом есть задежка?
об этом дам пояснению во второй части ролика) на самом деле задержка там минимальная, но она есть - обусловлена временем переключения между потоками. одно из условий высвобождения гил - это выполнение io операции потоком
2:03 Пайтон написан на С? или на джава или на .NET? Советы: чтобы пройти собес надо говорить - интерпретатор CPython написан на С и еще нужно знать почему в интерпретаторе Jython нету GIL. Только от системы управления памятью конкретного интерпретатора зависит нужен GIL или еще что-то.
когда говорят про Python, то подразумевается реализация именно CPython. Об этом во всех книгах написано. А тем, кто разворачивает за такое надо обоссать лицо.
крутой ролик, но вот такая вот штука, переписал твой код, но сколько бы раз я не перезапускал у меня все нормально. Нету как таковой ошибки как у тебя. И главный вопрос почему. Версия python 3.7
все же в скл, транзакции ждать не будут в общем случае (если изоляция не сериалайз), а здесь потоки ожидают снятия блокировки. поэтому вроде и аналог, но вроде и не совсем
@Unknown-yt7zu 0 seconds ago Что-то не получается повторить с ошибкой как в примере. Тысяча потоков на миллиард сложений - ни одной ошибки. А вот если потоки не джоинить - то ошибка появляется.
Как же круто, когда ты объясняешь на схемах в Miro. Такого практически никто не делает.
спасибо! я постараюсь ещё нарезать что-то вроде методичек как-нибудь
Николай, спасибо! Познавательно, глубоко, и интересно!
Благодарность от всей души!
Офигеть! Очень круто и понятно объяснил, спасибо!
Спасибо!
Огромная благодарность тебе!
Первый раз свою ваш контент, прям вышка.
excellent explanation of GIL role
Все очень доступно и понятно.
Большое спасибо за видео
Thanks! 👍💪
Thank you!
!!!! Идеально !!!!
лучшее видео на эту тему!!!
Просто гигант! Все легло в башке как надо)
Крутой ролик! Спасибо Вам!
здорово!
Ошибку воспроизвести не удалось, GIL за год стал работать лучше?)))
Получается lock это те же мьютексы?
Хоть кто то смог объяснить зачем нужен гил! От души
теперь я на игле скорости 1.25, именно на этом видео я поднял дозу до 1.5
Спасибо! Наконец-то понял, зачем нужен GIL. Но у меня вопрос. Если вся эта история с GIL обусловлена риском перемешивания в стеке инструкций от разных потоков, то почему тогда нельзя переделать PVM? Почему нельзя использовать несколько стеков или придумать другой подход?
Как я понял это безбожно дорого
спасибо за материал! ты говоришь, что благодаря GIL однопоточные программы работают быстрее, а почему так? слышал такую информацию, но не понимаю, почему
Пожалуйста!! БЫстрее, потому что мы используем только 1 точку блокировки - GIL, а не тысячи тысяч где-то ещё)
@@luchanos 26:15 Асуждаем !!!
Я думал, что, если напишу функцию реквеста на некии адресс и выполню ее в 5 потоков, то все реквесты вылетят в одном моменте времени. Получается между каждым реквестом есть задежка?
об этом дам пояснению во второй части ролика) на самом деле задержка там минимальная, но она есть - обусловлена временем переключения между потоками. одно из условий высвобождения гил - это выполнение io операции потоком
2:03 Пайтон написан на С? или на джава или на .NET? Советы: чтобы пройти собес надо говорить - интерпретатор CPython написан на С и еще нужно знать почему в интерпретаторе Jython нету GIL. Только от системы управления памятью конкретного интерпретатора зависит нужен GIL или еще что-то.
когда говорят про Python, то подразумевается реализация именно CPython. Об этом во всех книгах написано. А тем, кто разворачивает за такое надо обоссать лицо.
recpect
крутой ролик, но вот такая вот штука, переписал твой код, но сколько бы раз я не перезапускал у меня все нормально. Нету как таковой ошибки как у тебя. И главный вопрос почему. Версия python 3.7
привет! а какая у тебя ОС?
@@luchanos windows 11
Ммммм.... Аналог транзакционнных блокировок sql ?))
все же в скл, транзакции ждать не будут в общем случае (если изоляция не сериалайз), а здесь потоки ожидают снятия блокировки. поэтому вроде и аналог, но вроде и не совсем
@Unknown-yt7zu
0 seconds ago
Что-то не получается повторить с ошибкой как в примере. Тысяча потоков на миллиард сложений - ни одной ошибки.
А вот если потоки не джоинить - то ошибка появляется.