Возможно, стоит пояснить разницу между синхронизацией из thread/process-safe и синхронизацией с помощью Lock🤔
Наша задача — заставить разные процессы и потоки обращаться к базе данных (или любым другим ресурсам) последовательно. Чтобы не случилось так называемого race condition, то есть состояние гонки. Это когда разные потоки или процессы пытаются одновременно что-то сделать с одним и тем же ресурсом.
В этом случае нам нужна какая-то логика ограничения. Пока один процесс не завершил своё действие, другие не могут получить доступ к ресурсу.
Так вот, thread-safe и process-safe означает что отдельно взятые операции записи в БД гарантированно будут последовательны. Запросы из разных процессов или потоков выстроятся в очередь и не будут мешать друг другу. Лучше всего когда этот блок реализован на уровне БД в виде атомарных операций или ещё как-то.
Но зачем нам тогда еще дополнительный Lock?
Этот способ синхронизации используется когда процесс никак не укладывается в одно действие и должен сделать множество операций прежде чем дать доступ следующему. В этом случае процесс ставит некий глобальный Lock на ресурс и никто другой, даже получив законное право на доступ, не может ничего сделать. Все ждут пока этот Lock не будет снят.
Это решается на уровне приложения и правильность реализации полностью в вашей ответственности. Например, если забыли разблокировать или сделали перекрёстный Lock (Deadlock как на картинке), то всё зависнет в бесконечном ожидании.
#basic
Город решил делиться
В Сеуле в 2012 году на уровне города принята стратегия на развитие sharing эrономики.
Для мировой практики это довольно интересный эксперимент, поскольку совместное использование организуется в максимально возможном количестве направления и в не самом маленьком городе мира.
В числе существующих практик:
- сервис по аренде инструмента и всяких штук для ремонта - у соседей.
- библиотеки игрушек - там можно взять детские игрушки, книжки, видео напрокат
- аренда спортивных площадок
- аренда студентами комнат в домах и квартирах, где проживают одинокие пожилые люди
#сеул#sharing
Что это такое своп и шеринг группы («swap» и “sharing” в переводе с англ. “обмен”) ?
⠀
🍀это обмен ненужными, но хорошими вещами. Свопы проходят в виде фримаркета: вы приносите ненужную вам вещь, а забирайте нужную или вовсе ничего не забираете. Главный принцип свопа — никаких денег #nomoney
🍀 можно делиться информацией о ненужных вещах и договариваться об обмене в шеринг-группах или чатах в соцсетях.
⠀
⠀
🍀🍀🍀
#foodsharing#sharing#sobirator#собиратор#собиратормосква#своп#swap#свопмосква#обмен#медшеринг#шеринг#отдамдаром#отдамдароммосква#reuse#реюз#зоошеринг#zoosharing
#Start#contents#index#mark
This channel publishes groups and channels according to a main directory and several subject sub-directories for index search
The search keywords are as follows:
One type of keywords:
Nine categories of first-level keywords
Two types of keywords:
Second-level keywords + geographic region + language family
1. Telegraph #telegram#Promotion
#Group#channel#robot
#Search#index#navigation
2. Resources #Resources#Share
#Sharing#Welfare#moive#music#Books
3. Broadcasting #Broadcasting
#message#info#news#blog
4. Chat category #Chat
#chitchat#communication#city#area
#Chinese#English#language#country
#Mainland#HongKong#Taiwan
5. Computer category #Computer
#Hardware#software#VPN#programming
6. Life category #life
#Entertainment#Game#Funny#Anime
#Live#tourism
7. Subjects #Subjects
#Interest#hobbies#topic
8.Industry #Industry#business
9.To be classified
#notes Unclassified