Возможно, стоит пояснить разницу между синхронизацией из thread/process-safe и синхронизацией с помощью Lock🤔
Наша задача — заставить разные процессы и потоки обращаться к базе данных (или любым другим ресурсам) последовательно. Чтобы не случилось так называемого race condition, то есть состояние гонки. Это когда разные потоки или процессы пытаются одновременно что-то сделать с одним и тем же ресурсом.
В этом случае нам нужна какая-то логика ограничения. Пока один процесс не завершил своё действие, другие не могут получить доступ к ресурсу.
Так вот, thread-safe и process-safe означает что отдельно взятые операции записи в БД гарантированно будут последовательны. Запросы из разных процессов или потоков выстроятся в очередь и не будут мешать друг другу. Лучше всего когда этот блок реализован на уровне БД в виде атомарных операций или ещё как-то.
Но зачем нам тогда еще дополнительный Lock?
Этот способ синхронизации используется когда процесс никак не укладывается в одно действие и должен сделать множество операций прежде чем дать доступ следующему. В этом случае процесс ставит некий глобальный Lock на ресурс и никто другой, даже получив законное право на доступ, не может ничего сделать. Все ждут пока этот Lock не будет снят.
Это решается на уровне приложения и правильность реализации полностью в вашей ответственности. Например, если забыли разблокировать или сделали перекрёстный Lock (Deadlock как на картинке), то всё зависнет в бесконечном ожидании.
#basic
🚢Nordic American Tankers продаёт Suezmax за $40 млн.
Танкерный оператор Nordic American Tankers (NAT) реализовал один из самых возрастных судов флота — Suezmax постройки 2005 года — по цене около $40 млн.
Название не раскрывается, однако под параметры подпадают "Nordic Freedom" и "Nordic Skier".
Сделка отражает текущую конъюнктуру рынка, где даже возрастной тоннаж сохраняет высокую ликвидность на фоне ограниченного предложения и геополитической нестабильности. Ранее компания также согласовала продажу ещё одного Suezmax 2003 года постройки за $25 млн.
С операционной точки зрения, Nordic American Tankers проводит постепенное омоложение флота, фиксируя высокие цены на вторичном рынке и высвобождая капитал для дальнейших инвестиций.
Компания заявляет о планах расширения флота на фоне благоприятных рыночных перспектив.
📌Nordic American Tankers Ltd. — основана в 1995 году, публичная танкерная компания, зарегистрированная на NYSE, специализируется на флоте Suezmax; контролируется основателем и ключевым акционером Хербьерн Ханссон (Herbjørn Hansson).
#Tankers#Suezmax#Shipping#NAT#SecondHand
#go#blockchain#cloudvpn#golang#golang_library#holepunch#ipfs#ipfs_blockchain#kubernetes#libp2p#mesh#mesh_networks#nat#networking#p2p#p2pvpn#tunnel#vpn
EdgeVPN lets you create secure, decentralized private networks using peer-to-peer (p2p) connections without relying on central servers. It can build a VPN that automatically assigns IPs, includes a small DNS server, and protects your network even if tokens leak. You can also use it as a reverse proxy to share TCP services or send files securely over p2p without a VPN connection. It works well for edge devices and development, especially behind NATs, and can be integrated into your own Go programs. This helps you connect devices easily and securely across different networks without complex setup or infrastructure.
https://github.com/mudler/edgevpn