Przeczytaj kod, określ, czy wykonanie programu się zakończy i co zostanie wyświetlone na końcu w logu. ```java import java.util.concurrent.CountDownLatch; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class Increment { private static AtomicInteger counter1 = 0; private static AtomicInteger counter2 = 0; public static void main(String[] args) throws InterruptedException { int tasksCount = 100_000; CountDownLatch latch = new CountDownLatch(tasksCount); ExecutorService executor = Executors.newFixedThreadPool(100); for (int i = 0; i < tasksCount; i++) { executor.submit(() -> { counter1.incrementAndGet(); counter2.incrementAndGet(); latch.countDown(); }); } latch.await(); System.out.println(counter1); System.out.println(counter2); System.exit(0); } }
Java
Jak wyglądał Twój monitoring? Czy musiałeś tworzyć niestandardowe metryki i alerty?
Jak poprawnie przeprowadzać migracje baz danych bez błędów? Jak usuwać pola?
Co robić przy wysokim wykorzystaniu bazy danych? Co robić przy niskim wykorzystaniu bazy danych, ale wolnych zapytaniach?
Dlaczego iteracja po kolekcji ArrayList z milionem elementów jest szybsza niż po innych strukturach danych?
Jeśli jest pamięć podręczna danych, jak rozpoznać, że przyczyną OOM jest właśnie ona?
Do czego służy NoSQL? Dlaczego relacyjne bazy danych są niewystarczające? Przykłady zastosowań, zalety, struktury przechowywania.
Jaka jest różnica między blokiem synchronized a atomikami? Jak działa CAS?
Problemy podczas wdrażania: błędy pojawiają się podczas wdrażania i znikają po nim. Dlaczego?
Opowiedz więcej o implementacji CQRS w Twoim przypadku.
Jaki TTL wybrać dla pamięci podręcznej taryf, jeśli taryfy zmieniają się rzadko?
Co dokładnie tuningowałeś w Kafka? Jakie konkretne parametry konfigurowałeś?
W jakich sytuacjach używany jest wzorzec projektowy Consumer?
W jakiej formie otrzymaliście wymagania dotyczące zadań?
package ru.tbank; @Service public class OrderService { @Autowired private OrderRepository orderRepository; @Autowired private CacheService cacheService; public Order findOrder(Long orderId) { Order order = cacheService.get(orderId); if (order == null) { order = orderRepository.findById(orderId).orElse(null); if (order != null) { cacheService.put(orderId, order); } } return order; } }
Jak zapewnić niezawodne wysyłanie faktury, jeśli zewnętrzna usługa może się zawiesić?
Jak potwierdzić błąd braku pamięci w produkcji i co z tym zrobić? Jak zrobić zrzut sterty w momencie OOM?
Opowiedz, jak wyglądało rozdzielanie zadań i podejmowanie decyzji architektonicznych w Twoim zespole.
Dlaczego szukasz nowej pracy?
Usługa co kilka godzin kończy się błędem OutOfMemoryError. Od czego zaczniesz analizę problemu?