Перейти к основному содержимому

88 записей с тегом "Java Concurrency"

Посмотреть все теги

· 4 мин. чтения

1. Обзор

Spring ThreadPoolTaskExecutor — это JavaBean, который обеспечивает абстракцию вокруг экземпляра java.util.concurrent.ThreadPoolExecutor и предоставляет его как Spring org.springframework.core.task.TaskExecutor . Кроме того, он легко настраивается с помощью свойств corePoolSize, maxPoolSize, queueCapacity, allowCoreThreadTimeOut и keepAliveSeconds. В этом руководстве мы рассмотрим свойства corePoolSize и maxPoolSize .

2. corePoolSize против maxPoolSize

Пользователи, плохо знакомые с этой абстракцией, могут легко запутаться в разнице в двух свойствах конфигурации. Поэтому давайте рассмотрим каждый по отдельности.

2.1. corePoolSize

· 9 мин. чтения

1. Обзор

Пакет java.util.concurrent предоставляет инструменты для создания параллельных приложений.

В этой статье мы сделаем обзор всего пакета.

2. Основные компоненты

java.util.concurrent содержит слишком много функций, чтобы обсуждать их в одной статье . В этой статье мы в основном сосредоточимся на некоторых из наиболее полезных утилит из этого пакета, таких как:

· 5 мин. чтения

1. Введение

В этом руководстве мы покажем разницу между традиционными потоками в Java и виртуальными потоками, представленными в Project Loom .

Далее мы поделимся несколькими вариантами использования виртуальных потоков и API-интерфейсов, представленных в проекте.

Прежде чем мы начнем, мы должны отметить, что этот проект находится в активной разработке. Мы запустим наши примеры на виртуальной машине loom с ранним доступом: openjdk-15-loom+4-55_windows-x64_bin.

Более новые версии сборок могут свободно изменять и нарушать текущие API. При этом в API уже произошли серьезные изменения, поскольку ранее использовавшийся класс java.lang.Fiber был удален и заменен новым классом java.lang.VirtualThread .

2. Общий обзор потоков и виртуальных потоков

· 3 мин. чтения

1. Обзор

В этой короткой статье мы рассмотрим стандартные методы sleep() и wait() в базовой версии Java и поймем различия и сходства между ними.

2. Общие различия между ожиданием и сном

Проще говоря, wait() — это метод экземпляра, который используется для синхронизации потоков.

Его можно вызвать для любого объекта, так как он определен прямо в java.lang.Object, но его можно вызвать только из синхронизированного блока . Он освобождает блокировку объекта, чтобы другой поток мог подключиться и получить блокировку.

· 3 мин. чтения

1. Введение

В этом руководстве мы рассмотрим настройку пула потоков для серверов веб-приложений Java, таких как Apache Tomcat, Glassfish Server и Oracle Weblogic.

2. Пулы серверных потоков

Пулы потоков сервера используются и управляются сервером веб-приложений для развернутого приложения. Эти пулы потоков существуют вне веб-контейнера или сервлета, поэтому они не подчиняются одной и той же границе контекста.

В отличие от потоков приложений серверные потоки существуют даже после остановки развернутого приложения.

· 6 мин. чтения

1. Обзор

В этом уроке мы рассмотрим концепцию кражи работы в Java .

2. Что такое кража работы?

Кража работы была введена в Java с целью уменьшения конкуренции в многопоточных приложениях . Это делается с помощью фреймворка fork/join .

2.1. Разделяй и властвуй подход

· 6 мин. чтения

1. Обзор

В этой статье рассказывается о LMAX Disruptor и о том, как он помогает достичь параллелизма программного обеспечения с малой задержкой. Мы также увидим базовое использование библиотеки Disruptor.

2. Что такое разрушитель?

Disruptor — это библиотека Java с открытым исходным кодом, написанная LMAX. Это среда параллельного программирования для обработки большого количества транзакций с малой задержкой (и без сложностей параллельного кода). Оптимизация производительности достигается за счет дизайна программного обеспечения, использующего эффективность базового оборудования.

2.1. Механическая симпатия

· 7 мин. чтения

1. Введение

Core Java предоставляет базовый API для асинхронных вычислений — будущее. CompletableFuture — одна из новейших его реализаций.

Vavr предоставляет новую функциональную альтернативу Future API. В этой статье мы обсудим новый API и покажем, как использовать некоторые из его новых функций.

Больше статей о Vavr можно найти здесь .

2. Зависимость от Maven