Как работает GIL и как от него избавиться

В этой очередной статье по GIL разберемся, как работает Python, как был реализован GIL до версии языка 3.2, как глобальная блокировка работает сейчас, и что с ней делать.

https://habr.com/ru/articles/938980/

#Python #GIL #потоки #процессы #многопоточность

Как работает GIL и как от него избавиться

В этой очередной статье по GIL разберемся, как работает Python, как был реализован GIL до версии языка 3.2, как глобальная блокировка работает сейчас, и что с ней делать. Для чего нужен GIL? Основная...

Хабр

Волшебство ООП или как упростить многопоточное программирование C++

Если Вы сталкивались с многопоточными методами в классах и так же, как и мы, ужасались получившемуся раздутому коду ... вы по адресу. Пару ночей, жонглирование type_traits и мы готовы представить Вашему вниманию обёртку для подобных ситуаций!

https://habr.com/ru/articles/938382/

#ООП #многопоточность #type_traits #thread

Волшебство ООП или как упростить многопоточное программирование C++

Предисловие Итак, начнём мы с постановки задачи: мы хотим упростить вызов некой функции, которая является методом класса в отдельном потоке и при этом иметь инструментарий для её остановки / проверки...

Хабр

Многопоточность и масштаб: что предложили производители серверных чипов летом 2025

Лето 2025 выдалось богатым на новинки в мире серверных процессоров. Игроки рынка показали самые разные решения — от китайских моделей, которые развиваются несмотря на ограничения, до чипов от Intel, Ampere и IBM, рассчитанных на облака, ИИ и тяжелые вычисления. В этой подборке — пять процессоров, представленных или вышедших этим летом, которые привлекли внимание специалистов по всему миру.

https://habr.com/ru/companies/ru_mts/articles/937028/

#процессоры #высокая_производительность #itинфраструктура #компьютерное_железо #многопоточность

Многопоточность и масштаб: что предложили производители серверных чипов летом 2025

Лето 2025 выдалось богатым на новинки в мире серверных процессоров. Игроки рынка показали самые разные решения — от китайских моделей, которые развиваются несмотря на ограничения, до чипов от Intel,...

Хабр

Бизнес требует стабильной работы мобильного приложения у всех пользователей. Что делать?

Как загружать большие объемы данных? Часть 1. Привет, друзья! Наша команда более 10 лет занимается вопросами эффективной передачи данных на мобильные устройства. Мы исследовали разные варианты: одни оказались слишком медленными, другие приводили к переполнению памяти на мобильном устройстве. Хотим рассказать, как мы в команде « Форсайт. Мобильная платформа» сделали синхронизацию больших объемов данных, чтобы это работало, в том числе, на ТСД (терминал сбора данных). Для экономии батареи ТСД специально снабжают слабыми процессорами. Весь подбор инструментов и алгоритмов мы уже апробировали в продукте «Форсайт. Мобильная платформа» (ФМП). Специфичные условия для мобильного приложения начнем РАЗБИРАТЬ С КРЫШИ, так будет проще подобраться к существу вопроса. В среднем, отличие общедоступных приложений от бизнес-приложений – в объеме потребляемых данных. У бизнес-приложений объем данных значительно больше. Но, как водится, ожидание бизнес-пользователей от приложения точно такие же, как и у всех: приложение должно работать не просто быстро, а моментально. А это значит, что нужно найти особые техники по ускоренной передаче данных. При подборе технологий для транспорта данных нам хотелось получить: А) Стабильный механизм передачи данных. Б) Самый быстрый/производительный протокол из возможных. Поскольку мы производим спецшину по транспорту данных, для нас это означает, что мобильный пользователь будет обращаться в наш инструмент за «чемоданом» данных, и мы должны как можно быстрее передать ему этот «чемодан» целиком. У разработчиков возникает вопрос -- насколько большой может быть «чемодан»? Насколько будет нескромен кейс, который нужно будет тащить? За ориентир мы взяли ½ миллиона записей табличных данных.

https://habr.com/ru/companies/fsight/articles/931940/

#мобильная_разработка #android_development #Форсайт_мобильная_платформа #форсайт #многопоточность #загрузка_больших_объёмов_данных #Стабильный_механизм_передачи_данных #Скоростная_загрузка

Бизнес требует стабильной работы мобильного приложения у всех пользователей. Что делать?

Как загружать большие объемы данных? Часть 1. Привет, друзья! Наша команда более 10 лет занимается вопросами эффективной передачи данных на мобильные устройства. Мы исследовали разные варианты: одни...

Хабр

Spinlock vs. Mutex vs. Semaphore: Разбираемся в синхронизации с Zephyr OS

Всем привет! Сегодня хочу углубиться в одну из самых важных тем в мире Zephyr OS — синхронизацию потоков и задач. Если вы хоть раз работали с k_thread_create , гоняли потоки туда-сюда и ловили bus fault, вы меня понимаете. Когда задача одна — всё просто. Но как только вырастает многопоточность, задачи начинают драться за общий ресурс — и тут без надёжной синхронизации не обойтись. У Zephyr OS есть три главных инструмента для этого: spinlock , mutex и semaphore . Каждый со своим характером и подводными камнями.

https://habr.com/ru/articles/925168/

#многопоточность #многопоточное_программирование #rtos #ZephyrOS #zephyr_project #embedded #embedded_software_development #embedded_systems

Spinlock vs. Mutex vs. Semaphore: Разбираемся в синхронизации с Zephyr OS

Всем привет! Сегодня хочу углубиться в одну из самых важных тем в мире Zephyr OS — синхронизацию потоков и задач. Если вы хоть раз работали с k_thread_create , гоняли потоки туда-сюда и ловили bus...

Хабр

[Перевод] Как спроектировать потокобезопасный класс в Java

Потокобезопасность — одна из самых сложных и часто недооцененных тем в программировании. Особенно для разработчиков, работающих с многозадачностью в Java, где ошибки синхронизации могут приводить к непредсказуемым последствиям. В этой статье мы разберемся, как создавать классы, безопасные для работы в многопоточной среде, и какие подходы помогут избежать гонок данных, оставив код не только эффективным, но и надежным. Поговорим о проблемах, которые поджидают разработчиков при неправильной синхронизации, и о том, как эти проблемы можно эффективно решить, опираясь на проверенные стратегии.

https://habr.com/ru/companies/otus/articles/921348/

#java #Потокобезопасность #конкурентность #Многопоточность #производительности #потокобезопасный_класс #thread_safe

Как спроектировать потокобезопасный класс в Java

Итак, что такое потокобезопасный класс? Класс Java считается потокобезопасным, если несколько потоков могут обращаться к нему одновременно, не вызывая гонки данных или некорректного состояния....

Хабр

Что не так с ООП в 2025

Несмотря на то, что сам я ушел из большого ООП¹ более десяти лет назад, причем, надеюсь, навсегда, я всегда крайне вяло и неохотно участвую в баталиях тупоконечников и остроконечников: я абсолютно убежден, что для разных типов задач лучше подходят разные инструменты, и выхолощенное ФП заставит всех вокруг создавать тонны никому не нужного бойлерплейта для тривиального круда, а кристальное ООП — воткнет все возможные палки в колёса при реализации бизнес-процессов. Любой из современных языков программирования позволяет смешивать эти подходы, а микросервисная архитектура — даже гостеприимно приютит несколько языков и сред под одной крышей. Тем не менее, хотя я никогда не считал себя евангелистом функционального подхода, и уж, тем более, не примыкал к стану воинствующих пуристов, меня постоянно свербил вопрос: что же все-таки не так с ООП, если лично мне быстрее, проще и понятнее — реализовывать свои проекты на функциональном эликсире? И вот, наконец, меня озарило. Объектная модель всем хороша в однопоточной среде. Даже банальная асинхронность приносит кучу совершенно нерелевантных проблем: мьютексы любого сорта — это порождение дьявола. В игрушечных примерах из книжек они езе как-то работают, но действительно _многопоточный_ код на них написать фактически нереально. Среда, которая буквально приглашает разработчика ошибиться и разрушить тотальность функций потенциальным дедлоком — не должна иметь права на существование в принципе. Что не так с ООП в высокосвязном хайлоаде

https://habr.com/ru/articles/920898/

#многопоточность #акторная_модель #параллелизация

Что не так с ООП в 2025

Несмотря на то, что сам я ушел из большого ООП¹ более десяти лет назад, причем, надеюсь, навсегда, я всегда крайне вяло и неохотно участвую в баталиях тупоконечников и остроконечников: я абсолютно...

Хабр

Новая фича в Java 21: Виртуальные потоки: новые возможности для I/O bound микросервисов

Привет, Хабр! Я Иван Попов, ведущий инженер ЦК платформенных и интеграционных решений РСХБ-Интех. Java — мой самый любимый язык программирования, я всю жизнь работал только на нём. Сейчас я работаю в банке и хочу разрушить стереотип о том, что в банках все работают на Vegas. На java мы очень много работаем, тем более если видим, что новая технология позволяет нам оптимизировать процессы разработки (а количество интеграций огромное). Расскажу о новой фиче виртуальных потоков в Java 21, которая призвана повысить эффективность многопоточного кода.

https://habr.com/ru/companies/rshb/articles/917506/

#Java #Многопоточность #Микросервисы

Новая фича в Java 21: Виртуальные потоки: новые возможности для I/O bound микросервисов

Привет, Хабр! Я Иван Попов, ведущий инженер ЦК платформенных и интеграционных решений РСХБ-Интех. Java — мой самый любимый язык программирования, я всю жизнь работал только на нём. Сейчас я работаю в...

Хабр

Веб-воркеры — многопоточность в JavaScript

Даже самые зелёные новички в вебе знаю, что скрипты JS, нужно располагать в самом низу страницы перед закрывающим тегом `` и всё знаю что это повышает скорость загрузки страницы. Но Вы когда-нибудь задумывалась почему оно так? JavaScript по своей природе однопоточный язык, но мало того, он делит этот единственный поток сразу с HTML и CSS. Это приводит к тому, что встречая тег <script> , браузер начинает, исполнять его код, при этом останавливая дальнейшую обработку HTML и CSS и в результате пользователь наблюдает белый экран, вместо сайта, до тех самых пор пока, браузер не закончит с кодом JavaScript. Именно потому убирая подключения скриптов, в самый конец страницы, мы даём интерфейсу сайта максимально быстро погрузится и не бесить пользователей белой простынёй. Но подобный подход годен не везде, иногда жизненно необходимо, чтобы код JS, начал исполнение как можно раньше. Да и при подключении в самом низу, крупный JS-бандл, может здорово подкосить перфоманс сайта. Как быть в таких ситуациях? Смирится с тем что пользователи будут испытывать определённый дискомфорт во время загрузки сайта? Конечно же нет, можно попробовать вынести наш код в веб-воркеры! Так что такое эти ваши веб-воркеры?

https://habr.com/ru/articles/915518/

#javascript #вебворкер #вебворкеры #webworkers #многопоточность #многопоточное_программирование #js #воркеры

Веб-воркеры — многопоточность в JavaScript

Даже самые зелёные новички в вебе знаю, что скрипты JS, нужно располагать в самом низу страницы перед закрывающим тегом script и всё знаю что это повышает скорость загрузки страницы. Но Вы...

Хабр

[Перевод] ОС реального времени в эмуляторе Mario, или Как устроены потоки

В своём предыдущем посте о потоках я привёл импровизированное сравнение 1 : Потоки 2 — это просто состояния сохранения 3 эмулятора 4 , связанные с условием, при котором продолжается их выполнение. В тот момент я подумал, что это неплохая аналогия, но не мог перестать размышлять о ней. Я какое-то время крутил её в голове. Мне кажется, что у этой аналогии есть серьёзный потенциал в качестве инструмента обучения. Поэтому я добавил многопоточность в Super Mario Bros. для NES.

https://habr.com/ru/companies/ruvds/articles/914914/

#многопоточность #конкурентность #мьютексы #взаимная_блокировка #потоки #ruvds_перевод

ОС реального времени в эмуляторе Mario, или Как устроены потоки

В своём предыдущем посте о потоках я привёл импровизированное сравнение 1 : Потоки 2 — это просто состояния сохранения 3 эмулятора 4 , связанные с условием, при котором продолжается их выполнение. В...

Хабр