Возможно, стоит пояснить разницу между синхронизацией из thread/process-safe и синхронизацией с помощью Lock🤔
Наша задача — заставить разные процессы и потоки обращаться к базе данных (или любым другим ресурсам) последовательно. Чтобы не случилось так называемого race condition, то есть состояние гонки. Это когда разные потоки или процессы пытаются одновременно что-то сделать с одним и тем же ресурсом.
В этом случае нам нужна какая-то логика ограничения. Пока один процесс не завершил своё действие, другие не могут получить доступ к ресурсу.
Так вот, thread-safe и process-safe означает что отдельно взятые операции записи в БД гарантированно будут последовательны. Запросы из разных процессов или потоков выстроятся в очередь и не будут мешать друг другу. Лучше всего когда этот блок реализован на уровне БД в виде атомарных операций или ещё как-то.
Но зачем нам тогда еще дополнительный Lock?
Этот способ синхронизации используется когда процесс никак не укладывается в одно действие и должен сделать множество операций прежде чем дать доступ следующему. В этом случае процесс ставит некий глобальный Lock на ресурс и никто другой, даже получив законное право на доступ, не может ничего сделать. Все ждут пока этот Lock не будет снят.
Это решается на уровне приложения и правильность реализации полностью в вашей ответственности. Например, если забыли разблокировать или сделали перекрёстный Lock (Deadlock как на картинке), то всё зависнет в бесконечном ожидании.
#basic
New airdrop: Optimism OP
Reward: 40 #PO worth $120
Distribution date: 10th March, 2023
🔗Airdrop Link: airdrop page
-Complete all tasks of the airdrop
-Submit your BSC wallet address
-registration process completely
Done ✅Done✅Done✅Done✅
⚠️Please remember: We are airdrop hunters and only participate in free airdrops, do remember that airdrop tokens are free.
#Polonia
Un gruppo di parlamentari e senatori hanno annunciato la formazione di un nuovo partito chiamato "Centrum dla Polski"/#CdP, che farà parte della coalizione guidata dal #PSL|EPP. Il partito, che si prefissa ideologicamente come liberal-conservatore e democristiano, dovrebbe comprendere alcuni ex membri dell'ala conservatrice del #PO|EPP espulsi nel corso degli anni.
In foto il logo del partito.
@UltimoraPolitics
#Polonia🇵🇱
#Presidenziali
❗️Rafał #Trzaskowski (#PO|PPE) e Karol #Nawrocki (Ind.) si sfideranno al secondo turno, che si terrà domenica 1º giugno.
@TuttoElezioni