Возможно, стоит пояснить разницу между синхронизацией из thread/process-safe и синхронизацией с помощью Lock🤔
Наша задача — заставить разные процессы и потоки обращаться к базе данных (или любым другим ресурсам) последовательно. Чтобы не случилось так называемого race condition, то есть состояние гонки. Это когда разные потоки или процессы пытаются одновременно что-то сделать с одним и тем же ресурсом.
В этом случае нам нужна какая-то логика ограничения. Пока один процесс не завершил своё действие, другие не могут получить доступ к ресурсу.
Так вот, thread-safe и process-safe означает что отдельно взятые операции записи в БД гарантированно будут последовательны. Запросы из разных процессов или потоков выстроятся в очередь и не будут мешать друг другу. Лучше всего когда этот блок реализован на уровне БД в виде атомарных операций или ещё как-то.
Но зачем нам тогда еще дополнительный Lock?
Этот способ синхронизации используется когда процесс никак не укладывается в одно действие и должен сделать множество операций прежде чем дать доступ следующему. В этом случае процесс ставит некий глобальный Lock на ресурс и никто другой, даже получив законное право на доступ, не может ничего сделать. Все ждут пока этот Lock не будет снят.
Это решается на уровне приложения и правильность реализации полностью в вашей ответственности. Например, если забыли разблокировать или сделали перекрёстный Lock (Deadlock как на картинке), то всё зависнет в бесконечном ожидании.
#basic
🌎 Hidden in the forests of Lithuania, the Hill of Crosses is a mysterious pilgrimage site with over 100,000 crosses placed by visitors. Its origins are unclear, but records show the first crosses appeared after a 19th-century uprising, and locals continued the tradition despite repeated removals by occupying powers. ✨
#Lithuania⚡#mystery⚡#pilgrimage
👉subscribe Interesting Planet
👉more Channels
Минутка пилигримских лайф-хаков.
👉Если вы хотите пользоваться аутентичными средневековыми ёмкостями для питья в походе, то вы столкнётесь с тем, что все они имеют свои минусы и плюсы. Вариантов у нас три: керамика, кожа и тыква.
💬Обливные керамические фляги круты тем, что не дают привкуса воде или алкоголю, сохраняют напиток прохладным, крепкие, но тяжелые и могут разбиться. Кожаные фляги не бьются, могут протекать, дают воде специфический восковой привкус и в них нельзя переносить алкогольные напитки «в долгую» - алкоголь растворяет воск и дает протечку. Мой же выбор пал на очень милую, лёгкую вариацию походной фляги – флягу-тыкву. О ней чуть подробнее.
😕Фляга – тыква имеет ряд существенных недостатков. Она может сломаться при неправильной транспортировке, так как это буквально сушёная тыква и она хрупка. А также, со временем, такая фляга может зацвести, даже если вы будете сушить её после использования правильно.
🙀Однако, с нурглитской жизнью в вашей фляге можно бороться. Если тыква зацвела, это беда, но решаемая. Главное, чтобы фляга не свистела. (ШУТОЧКА!) Хорошо почистите и промойте вашу фляжку. После залейте в онургличенную тыкву девятипроцентный столовый уксус и оставьте так на полтора дня. После этого проветрите флягу. Когда уксусный запах подвыветрется, самое время завощить фляжку повторно. Растопите воск на водяной бане, залейте во фляжку и заткните пробкой. Сразу же начните активно вращать и крутить флягу, пока воск не застыл. Быстро заливайте воск, закрывайте пробкой и крутите, как ошалелый. Когда воск высохнет, ваша фляга готова к повторному использованию, а дедушка нургл не пожрёт ваши внутренности и не заразит кишечник своими спорами (но это не точно!).
Текст подготовил Иван, следите за ним в Телеге - https://t.me/plaguevision
Наш клуб есть в Телеге: https://t.me/vlaanderen1302
#реконструкция#кириф_фламандцы#фламандцы#история#средниевека#средневековье#pilgerweg#13век#pilgrimage