Возможно, стоит пояснить разницу между синхронизацией из thread/process-safe и синхронизацией с помощью Lock🤔
Наша задача — заставить разные процессы и потоки обращаться к базе данных (или любым другим ресурсам) последовательно. Чтобы не случилось так называемого race condition, то есть состояние гонки. Это когда разные потоки или процессы пытаются одновременно что-то сделать с одним и тем же ресурсом.
В этом случае нам нужна какая-то логика ограничения. Пока один процесс не завершил своё действие, другие не могут получить доступ к ресурсу.
Так вот, thread-safe и process-safe означает что отдельно взятые операции записи в БД гарантированно будут последовательны. Запросы из разных процессов или потоков выстроятся в очередь и не будут мешать друг другу. Лучше всего когда этот блок реализован на уровне БД в виде атомарных операций или ещё как-то.
Но зачем нам тогда еще дополнительный Lock?
Этот способ синхронизации используется когда процесс никак не укладывается в одно действие и должен сделать множество операций прежде чем дать доступ следующему. В этом случае процесс ставит некий глобальный Lock на ресурс и никто другой, даже получив законное право на доступ, не может ничего сделать. Все ждут пока этот Lock не будет снят.
Это решается на уровне приложения и правильность реализации полностью в вашей ответственности. Например, если забыли разблокировать или сделали перекрёстный Lock (Deadlock как на картинке), то всё зависнет в бесконечном ожидании.
#basic
После резни алавитов и друзов начался погром против сирийских христиан. Исламисты из соседних деревень начали нападать на христианские предприятия и дома в Аль-Сукейлабии (Сирия). То, что произошло сегодня, не будет последним разом. К сожалению, это будет повторяться снова и снова, потому что те, кто хочет уничтожить меньшинства, чувствуют себя воодушевлёнными, терпимыми и даже поощряемыми.
Молитесь за сирийских христиан, но не останавливайтесь на этом. Говорите об этом. Делитесь этим. Молчание мира — часть трагедии!!! 🙏🏼#syria
At least 1,383 civilians, mostly Alawites and Christians, were killed in a wave of violence that swept across Syria's Mediterranean coast — the Syrian Observatory for Human Rights
#Syria
Nieuwe gouverneur van Damascus verdedigt Israëlische aanvallen op Syrië
"Het is begrijpelijk dat Israël zich zorgen maakt als er een nieuwe regering aan de macht komt in Syrië."
"Misschien was Israël bang en daarom gingen ze door met een beetje bombarderen."
"We zijn niet bang voor Israël en we hebben geen probleem met Israël. We willen ons niet bemoeien met iets dat de veiligheid van Israël bedreigt."
#Syria
🇸🇾#Syria: Clashes broke out overnight between the Syrian Army (HTS) and alleged Uzbek jihadist militants in the Idlib countryside, around the villages of Al Foua, Kafraya, and Binnish.
Reportedly, the clashes occurred after several days of protests following the arrest of several Uzbek fighters.
(via @KurdishFrontNews)
🇸🇾#Syria: Protests erupted overnight in the city of Qamishli in al-Hasakah Governorate after a man, allegedly from the Rashid tribe, reportedly shot at the Kurdish flag and toward a security checkpoint at the entrance to the city.
(via @Intel_Rojava)