Возможно, стоит пояснить разницу между синхронизацией из thread/process-safe и синхронизацией с помощью Lock🤔
Наша задача — заставить разные процессы и потоки обращаться к базе данных (или любым другим ресурсам) последовательно. Чтобы не случилось так называемого race condition, то есть состояние гонки. Это когда разные потоки или процессы пытаются одновременно что-то сделать с одним и тем же ресурсом.
В этом случае нам нужна какая-то логика ограничения. Пока один процесс не завершил своё действие, другие не могут получить доступ к ресурсу.
Так вот, thread-safe и process-safe означает что отдельно взятые операции записи в БД гарантированно будут последовательны. Запросы из разных процессов или потоков выстроятся в очередь и не будут мешать друг другу. Лучше всего когда этот блок реализован на уровне БД в виде атомарных операций или ещё как-то.
Но зачем нам тогда еще дополнительный Lock?
Этот способ синхронизации используется когда процесс никак не укладывается в одно действие и должен сделать множество операций прежде чем дать доступ следующему. В этом случае процесс ставит некий глобальный Lock на ресурс и никто другой, даже получив законное право на доступ, не может ничего сделать. Все ждут пока этот Lock не будет снят.
Это решается на уровне приложения и правильность реализации полностью в вашей ответственности. Например, если забыли разблокировать или сделали перекрёстный Lock (Deadlock как на картинке), то всё зависнет в бесконечном ожидании.
#basic
🫧Армия США расследует полёты «Апачей» над домом Кид Рока
📌Армия США начала расследование после того, как боевые вертолёты AH-64D Apache из 101-й бригады были сняты на видео кружащими над домом музыканта Кид Рока в Нэшвилле и летающими на низкой высоте возле протестующих в Кларксвилле. По документам вертолёты должны были выполнять учебный полёт
🔵Представитель армии заявил, что это не было санкционированным мероприятием и вертолёты не назначались для наблюдения за демонстрациями. Проводится административная проверка соблюдения правил полётов и требований воздушного пространства
⬅️Обещают принять меры в случае выявления нарушений
Лёгкое небо
#aviation#news#США#Apache
✅ Завтра
Основы In-Memory Computing для архитекторов и разработчиков. Часть 1
📅 28 февраля / 19:00 (время МСК) / онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/h2Yvvo
Денис Магда, Apache Ignite PMC Chair и директор по продукту в GridGain, расскажет об основных возможностях и компонентах In-Memory Computing решений на примере Apache Ignite. Вебинар совмещает теорию и практику, после него участники смогут проектировать и писать код под подобные системы.
На конкретных примерах кода вы узнаете про:
~ Конфигурацию и запуск кластеров;
~ Обработку данных с использованием key-value API;
~ Оптимальную обработку данных с помощью распределенного SQL.
🔗 Программа: https://goo.gl/h2Yvvo
#apache#ApacheIgnite#онлайн#online
✅ Через неделю
Основы In-Memory Computing для архитекторов и разработчиков. Часть 1
📅 28 февраля / 19:00 (время МСК) / онлайн
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/AgNpma
Денис Магда, Apache Ignite PMC Chair и директор по продукту в GridGain, расскажет об основных возможностях и компонентах In-Memory Computing решений на примере Apache Ignite. Вебинар совмещает теорию и практику, после него участники смогут проектировать и писать код под подобные системы.
На конкретных примерах кода вы узнаете про:
~ Конфигурацию и запуск кластеров;
~ Обработку данных с использованием key-value API;
~ Оптимальную обработку данных с помощью распределенного SQL.
🔗 Программа: https://goo.gl/AgNpma
#apache#ApacheIgnite#онлайн#online
✅ Через неделю
✅ ANDROID MEETUP
📅 29 марта / 19:00–21:00 (время ЕКБ, МСК+2) / Екатеринбург, пер. Химков, 3, коворкинг Соль
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/TyRRL6
Приглашаем вас к нам на митап, чтобы пообщаться, поделиться опытом и рассказать с какими задачами мы сталкиваемся, какие технологии используем и ,конечно, перетереть косточки Kotlin
🔗 Программа: https://goo.gl/TyRRL6
#android#Kotlin#Екатеринбург
✅ Epic Growth Conference
📅 29 марта / 14:00–22:00 (время МСК) / Москва, ул. 3-я Ямского Поля, 15
💵 Платно
📝 Регистрация тут: https://goo.gl/WEVQ6a
29 марта в Москве Mobio и Getloyal при поддержке партнеров организуют конференцию по продуктовому маркетингу Epic Growth Conference.
🔗 Программа: https://goo.gl/WEVQ6a
#marketing#productivity#маркетинг#продукт#Москва
✅ Apache® Ignite™ Meetup #1
📅 29 марта / 19:00–22:00 (время МСК) / Санкт-Петербург, Невский проспект 35
💵 Бесплатно
📝 Регистрация тут: https://goo.gl/xsnDmZ
Встреча для архитекторов и разработчиков, которые интересуются In-Memory решениями, в том числе open-source платформой Apache Ignite.
🔗 Программа: https://goo.gl/xsnDmZ
#Apache#backend#СанктПетербург