Возможно, стоит пояснить разницу между синхронизацией из thread/process-safe и синхронизацией с помощью Lock🤔
Наша задача — заставить разные процессы и потоки обращаться к базе данных (или любым другим ресурсам) последовательно. Чтобы не случилось так называемого race condition, то есть состояние гонки. Это когда разные потоки или процессы пытаются одновременно что-то сделать с одним и тем же ресурсом.
В этом случае нам нужна какая-то логика ограничения. Пока один процесс не завершил своё действие, другие не могут получить доступ к ресурсу.
Так вот, thread-safe и process-safe означает что отдельно взятые операции записи в БД гарантированно будут последовательны. Запросы из разных процессов или потоков выстроятся в очередь и не будут мешать друг другу. Лучше всего когда этот блок реализован на уровне БД в виде атомарных операций или ещё как-то.
Но зачем нам тогда еще дополнительный Lock?
Этот способ синхронизации используется когда процесс никак не укладывается в одно действие и должен сделать множество операций прежде чем дать доступ следующему. В этом случае процесс ставит некий глобальный Lock на ресурс и никто другой, даже получив законное право на доступ, не может ничего сделать. Все ждут пока этот Lock не будет снят.
Это решается на уровне приложения и правильность реализации полностью в вашей ответственности. Например, если забыли разблокировать или сделали перекрёстный Lock (Deadlock как на картинке), то всё зависнет в бесконечном ожидании.
#basic
#Tourist
The Great Wall of China :
is a huge chain of defensive fortifications stretching across northern China, it is a symbol of China and one of the Seven Wonders of the new world, known for its enormous length exceeding 21 thousand kilometers, it was built over centuries, especially during the Ming dynasty, it features watchtowers and strategic corridors, it is a UNESCO World Heritage Site and an outstanding world tourist destination.
📝
Construction history:
the first construction work began more than 2000 years ago, during the spring and autumn reign and the Warring States, and it was significantly expanded and renovated by later dynasties, especially the Ming Dynasty (1369-1644).
#Nature
#Tourist
Socotra:
is a Yemeni archipelago belonging to the Hadramaut region consisting of six islands on the Indian Ocean off the coast of the Horn of Africa near the Gulf of Aden, located about 240 kilometers (150 Mi) east of the coast of Somalia and 380 kilometers (240 Mi) south of the Arabian Peninsula.
The island was classified as a World Heritage Site in 2008, and the New York Times ranked it as the most beautiful island in the world in 2010 due to the unique biodiversity and environmental importance of this island and its reflection on the world. In October of 2013, the Socotra archipelago governorate became an independent governorate from Hadramaut governorate.
#History
#Tourist
The Great Sphinx:
is a huge stone sculpture carved from limestone, embodying a mythical creature with a human head and the body of a lion in a reclining position.
Facing directly from West to East, the statue is located on the Giza plateau on the West Bank of the Nile in Giza, Egypt.
It is believed that the facial features of the statue belong to Pharaoh Khafre.
The original figure of the Sphinx was carved from the Adim Rock, later it was restored with limestone layers. The statue is 73 M (240 ft) long from claw to tail, 20 M (66 ft) high from the base to the top of the head, and 19 m (62 ft) wide at its hind feet