Comments 17
Привет! Я Дмитрий Первушин, работаю в Сбере и хорошо разбираюсь в Python.
Эта статья для тех, кто уже немного знаком с Python и хочет разобраться в тонкостях многопоточности, асинхронности и многопроцессорности. Я объясню разницу между ними, покажу, где и как их использовать, а также разберу типичные ошибки, чтобы вы сразу поняли, как делать не нужно.
В общем, будем учиться на примерах и сравнениях, чтобы все стало понятно!
Изначальный план был повысить уровень начинающих разработчиков в сбере, но потом решил поделиться с сообществом, надеюсь пригодится кому-нибудь. Python он и есть python хоть в сбере хоть где.
Если у вас разработчики в СБере это не знают, как вы их на работу взяли? Это база с который любой сталкивается, даже в банальном телеграмм боте, на первых месяцах изучения языка.
Повышаем уровень, а не учим с нуля.
Уровень чего? Уровень нулей повышаете? Это базовые знания с 1 недели после освоения синтаксиса.
Это не базовые знания, и уж точно не после освоения синтаксиса. После освоения синтаксиса ты будешь учить, как работают списки, словари и т.д. Я посмотрел бы, как чел попробовал бы после 1 недели изучения языка поработать с конкурентностью, и как GIL влияет на его работу.
Синтаксис это и есть в том числе типы данных, списки и словари. В ЛЮБОМ СЛУЧАЕ это даже не уровень курсов по кодингу и не уровень ДЖУНА. В статье БАЗОВЫЕ вещи, самые АЗЫ. КАК GIL влияет на работу любой джун и новичек узнает чуть ли не в своих первых скриптах, точно так же как и почему синхронный код не очень, это все уровень телеграмм ботов и простейших задач. Как человек мог пройти собеседование в сбер не зная о асинхронке или GIL?
Ну, меня звали лет 10 назад в Сбер, а уровень познаний в разработке у меня заморожен с 1994 года, как раз на джуна, с перспективой роста, т.к. другие скиллы у меня значительно превосходят уровень среднего начинающего разработчика, но я испугался так радикально менять профиль, всё админом продолжаю работать... а статью почитал с интересом, хоть и совсем не по своему профилю - мне многопоточность ближе в разрезе закрепления за конкретными ядрами, да страницами памяти, ну, отчасти за использованием агрегации сетевых интерфейсов и архитектуры хранилищ, в общем, с другого конца смотрю на проблему =)
Мне кажется, у вас в статье перепутаны многопроцессорность и многопроцессность.
Ещё не упомянули concurrent.futures, ProcessPoolExecutor и ThreadPoolExecutor.
я лидер Python-компетенций трайба ИСУ в Сбере
Какой кринж /s
Спасибо за полезную статью!
P.s. У фразы 'лидер Python-компетенций трайба ИСУ' определенно есть мемный потенциал)
Ну так и где гипертрединг и зелёные треды? Как сделать синхронную функцию асинхронной и заставить GIL переключать контекст?
Где самое интересное то?
Ща говорит базу прокачаем... Ну то есть расскажем. А дальше ну и вот. Статья )
Прежде чем рассматривать однопроцессорность и многопроцессорность с претензией на глобальность и приводить приложение питона, следует вспомнить закон Амдала и тест на ТОР500!?
я лидер Python-компетенций трайба ИСУ
А чо не сениор мазафакер и буллшит инфлюенсер?
Различные вычисления, многопоточность, асинхронность и мультипроцессность в Python