Поговорим о дедлоках
В сентябре съездил в Белград на внутренний митап Яндекса, рассказал про дедлоки и борьбу с ними в самых разнообразных местах: начиная от собственной головы и кончая распределенными системами. Презентация доступна отдельно.
В сентябре съездил в Белград на внутренний митап Яндекса, рассказал про дедлоки и борьбу с ними в самых разнообразных местах: начиная от собственной головы и кончая распределенными системами. Презентация доступна отдельно.
В этой статье мы обсудим паттерн “Cancellation Token” (или по-русски - “токен отмены”), популярный в некоторых других языках, но почему-то обойденный вниманием в Python-сообществе. Он о том, как безопасно и красиво завершать работу функции, треда или корутины. Эта статья — уже третья в серии про многопоточное программирование на Python. Предыдущая была про защиту от дедлоков, но читать её для понимания этой не обязательно. Вся серия предназначена для программистов, знакомых с базовыми концепциями многопоточного программирования....
Дедлоки — распространенная проблема в многопоточном программировании. В больших приложениях вручную отслеживать порядок блокировок может быть достаточно сложно, причем эта проблема может не всплыть на этапе тестирования и случиться только в каких-то сложновоспроизводимых кейсах при реальном использовании. Существует много способов их избегания, но здесь мы рассмотрим только один — автоматическое выявление дедлоков на основе графа ожидания. Эта статья — продолжение серии про многопоточное программирование на Python. Предыдущая была про хранение настроек в многопоточном приложении, но читать её для понимания этой не обязательно....
Если опустить первое и самое главное предубеждение относительно питонячьей многопоточности у большинства программистов — что её не существует из-за GIL, — то остается другое, и, наверное, вполне достоверное: многопоточность — это сложно, и нам этого, пожалуйста, не надо. И знаете что? Так оно и есть. Многопоточность — это сложно, особенно когда выбираешься за пределы стандартных руководств и попадаешь со своей многопоточной поделкой в реальный мир. И, возможно, вам не нужно....