Возможно, стоит пояснить разницу между синхронизацией из thread/process-safe и синхронизацией с помощью Lock🤔
Наша задача — заставить разные процессы и потоки обращаться к базе данных (или любым другим ресурсам) последовательно. Чтобы не случилось так называемого race condition, то есть состояние гонки. Это когда разные потоки или процессы пытаются одновременно что-то сделать с одним и тем же ресурсом.
В этом случае нам нужна какая-то логика ограничения. Пока один процесс не завершил своё действие, другие не могут получить доступ к ресурсу.
Так вот, thread-safe и process-safe означает что отдельно взятые операции записи в БД гарантированно будут последовательны. Запросы из разных процессов или потоков выстроятся в очередь и не будут мешать друг другу. Лучше всего когда этот блок реализован на уровне БД в виде атомарных операций или ещё как-то.
Но зачем нам тогда еще дополнительный Lock?
Этот способ синхронизации используется когда процесс никак не укладывается в одно действие и должен сделать множество операций прежде чем дать доступ следующему. В этом случае процесс ставит некий глобальный Lock на ресурс и никто другой, даже получив законное право на доступ, не может ничего сделать. Все ждут пока этот Lock не будет снят.
Это решается на уровне приложения и правильность реализации полностью в вашей ответственности. Например, если забыли разблокировать или сделали перекрёстный Lock (Deadlock как на картинке), то всё зависнет в бесконечном ожидании.
#basic
📩#LTCUSDT 1h | Mid-Term
📉Long Entry Zone: 123.69-117.94
🎯 - Strategy Accuracy: 93.29%
Last 5 signals: 100.0%
Last 10 signals: 100.0%
Last 20 signals: 100.0%
⏳ - Signal details:
Target 1: 125.27
Target 2: 126.86
Target 3: 128.44
Target 4: 133.19
_____
🧲Trend-Line: 117.94
❌Stop-Loss: 116.44
💡After reaching the first target you can put the rest of the position to breakeven
#LTCUSDT has broken out of a Descending Channel, supported by the $60.00 level. However, for this rally to strengthen, it needs to clear the $75.00-$80.00 resistance zone, which was previously support. A successful breakout here could lead to a stronger push toward the next major resistance.
---
#LTCUSDT пробил нисходящий канал, опираясь на поддержку на уровне $60.00. Однако для усиления ралли необходимо преодолеть зону сопротивления $75.00-$80.00, которая ранее служила поддержкой. Успешный пробой этого уровня может привести к более сильному росту к следующему важному сопротивлению.
---
#LTCUSDT از کانال نزولی خارج شده و با حمایت قوی در سطح $60.00 پشتیبانی شده است. اما برای تقویت این صعود، باید از محدوده مقاومت $75.00-$80.00 که قبلاً حمایت بوده، عبور کند. شکست موفقیتآمیز در این سطح میتواند منجر به فشار قویتری به سمت مقاومت بعدی شود.
Signal for a futures trade
#LTCUSDT.P
📌 Logged in to LONG
Entry: ±$65.85
Take profit: $76; $90; $100
Stop loss: $59.5
On the daily chart, the price of the coin is preparing to exit consolidation. It is also possible to develop a double bottom pattern. It is most likely that alts will catch up with Bitcoin in their dynamics.
#LTCUSDT UPDATE:
#LTC is now currently trading around $86.46. It has already broken out of the Symmetrical triangle on the 4hr time frame. So, the possible scenarios are: if the price pumps from here and breaks above the resistance zone, then we can see bullish momentum, and the price can go towards $91-$93. Otherwise, if the price dumps from here and trades inside the triangle again, then the breakout will be considered a fakeout. Keep an eye on it and stay tuned with us for further updates
🚨Candlestick Patterns Detected:
⭐Shooting Star on #ADAUSDT (4h)
⭐Shooting Star on #ETHUSDT (4h)
⭐Shooting Star on #NEARUSDT (4h)
⭐Shooting Star on #XRPUSDT (4h)
⭐Shooting Star on #FORMUSDT (4h)
⭐Shooting Star on #LTCUSDT (4h)
====================
🔨Hammer on #CAKEUSDT (4h)
🔨Hammer on #SUIUSDT (4h)
🔨Hammer on #LINKUSDT (4h)
🔨Hammer on #WLFIUSDT (4h)
🔨Hammer on #ASTERUSDT (4h)
🔨Hammer on #DOGEUSDT (4h)
🔨Hammer on #ENAUSDT (4h)
🔨Hammer on #PUMPUSDT (4h)
🔨Hammer on #ZECUSDT (4h)
🔨Hammer on #SOLUSDT (4h)
====================
🚀Marubozu Bullish on #TAOUSDT (4h)
====================