Найти тему
Spring виды transactional propagation
REQUIRED: Это наиболее распространенный тип. Если метод, помеченный @Transactional, вызывается внутри другого метода, который уже выполняется в транзакции, то новая транзакция не создается. Вместо этого метод присоединяется к уже существующей транзакции. Если метод вызывается вне транзакционного контекста, создается новая транзакция. REQUIRES_NEW: Всегда создает новую транзакцию. Если текущая транзакция существует, она будет приостановлена и создана новая транзакция для выполнения метода. MANDATORY требует, чтобы текущая транзакция уже существовала при вызове метода...
1 год назад
Зачем нужны атомики, если есть volatile в Java?
В мире многопоточного программирования в Java существует несколько механизмов для обеспечения безопасности и согласованности данных при работе с несколькими потоками. Один из таких механизмов - это ключевое слово volatile, которое обозначает, что значение переменной может быть изменено несколькими потоками и что изменения должны быть видны всем потокам немедленно. Однако, помимо volatile, в Java также существует понятие атомиков, представленное классами из пакета java.util.concurrent.atomic. В этой...
1 год назад
Разница между @Controller и @RestController аннотациями в Spring
В Spring Framework, Controller и RestController являются различными типами контроллеров, предназначенными для обработки HTTP-запросов, но с разными целями и поведением. @Controller Обычный Controller в Spring предназначен для обработки HTTP-запросов и возвращения результата, который может быть представлен в виде HTML-страницы, JSON, XML или любого другого формата. В примере на запрос по url /hello будет возвращено thymeleaf view "hello"...
1 год назад
Что такое Happens-before?
В Java, "happens-before" (происходит-перед) является понятием согласованности памяти (memory consistency), которое определяет порядок выполнения операций в многопоточной среде. Это означает, что если операция A " происходит-перед " операцией B, то любые изменения, сделанные операцией A, будут видны операции B, когда она произойдет. " Happens-before " предоставляет гарантии относительно порядка выполнения операций в многопоточной среде. Есть несколько способов обеспечения happens-before: - Locks...
177 читали · 1 год назад
Что такое ForkJoinPool и как его использовать
ForkJoinPool в Java - это часть пакета java.util.concurrent, предназначенная для реализации параллельного выполнения задач, основанных на разделении и объединении (fork-join). Он представляет собой специализированный пул потоков, который может эффективно обрабатывать задачи, которые разбиваются на более мелкие подзадачи. Как работает ForkJoinPool: ForkJoinPool использует стратегию работы под названием "work-stealing" (поиск работы). Потоки, которые выполнили свои текущие задачи, могут «украсть» задачи из очереди других потоков, которые еще имеют задачи для выполнения...
1 год назад
Параллельные стримы в java
Параллельные стримы в java позволяет выполнять операции над элементами последовательности параллельно, то есть в несколько потоков. Это может ускорить выполнение операций в ситуациях, когда операции можно разбить на независимые части и обработать их параллельно. Параллельные стримы подходят для данных, операции над которыми не зависят друг от друга и могут быть выполнены независимо. Также параллельность стоит использовать на большом количестве элементов, так как обрабатываемые элементы необходимо поделить между потоками, а затем собрать воедино результат каждого выполненного задания...
1 год назад