# java-concurrency

Скилл для ИИ-агента, который помогает писать потокобезопасный код на Java: от обычных потоков до виртуальных в Java 21+.

- скилл · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 465 установок · ★ 41
- Автор: pluginagentmarketplace
- Лицензия: LicenseRef-Proprietary · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/pluginagentmarketplace/custom-plugin-java/tree/HEAD/skills/java-concurrency/SKILL.md
- Обновлён: 2026-01-05
- HTML: https://affpapa.org/nevibecode/skills/java-concurrency

## Что делает

Скилл покрывает многопоточность в Java: жизненный цикл потоков, демоны, обработку прерываний, `synchronized` и `volatile`, `ReentrantLock`, атомарные операции. Дальше идут пулы потоков — настройка `ThreadPoolExecutor`, `ForkJoinPool` — и виртуальные потоки из Java 21. Отдельный блок про `CompletableFuture`: асинхронный запуск, цепочки, обработка исключений.

Внутри есть справочные таблицы. Одна подсказывает размер пула: для задач, упирающихся в процессор, советует взять число ядер, для задач с ожиданием ввода-вывода — считать по формуле с долей ожидания. Другая разбирает типовые сбои: взаимная блокировка из-за кругового захвата, гонка при нехватке синхронизации, голодание потоков. Для разбора зависаний приведены команды `jstack -l <pid>` и `jcmd <pid> Thread.print`.

Параметр `java_version` по умолчанию стоит на `21`, поэтому виртуальные потоки и примеры с ними в коде скилла рассчитаны на эту версию. Если проект собирается на более старом JDK, раздел про виртуальные потоки просто не скомпилируется — это повод проверить версию до того, как агент начнёт править код. Скилл вызывается через `Skill("java-concurrency")`.

## Установка

### Claude Code (родная платформа)

1. **Через Skills CLI (Vercel)**
```bash
npx skills add pluginagentmarketplace/custom-plugin-java --skill java-concurrency -a claude-code
```

2. **Вручную: положить файлы**
- Файл: `~/.claude/skills/java-concurrency/SKILL.md` — Папка скилла целиком; для одного проекта — .claude/skills/java-concurrency/

### Codex

1. **Через Skills CLI (Vercel)**
```bash
npx skills add pluginagentmarketplace/custom-plugin-java --skill java-concurrency -a codex
```

2. **Вручную: положить файлы**
- Файл: `.agents/skills/java-concurrency/SKILL.md` — Для всех проектов — ~/.agents/skills/

### Cursor

1. **Через Skills CLI (Vercel)**
```bash
npx skills add pluginagentmarketplace/custom-plugin-java --skill java-concurrency -a cursor
```

2. **Вручную: положить файлы**
- Файл: `.cursor/skills/java-concurrency/SKILL.md` — Cursor читает и .agents/skills/, и .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install pluginagentmarketplace/custom-plugin-java java-concurrency
```

2. **Вручную: положить файлы**
- Файл: `.github/skills/java-concurrency/SKILL.md`

### Gemini CLI

1. **Через Skills CLI (Vercel)**
```bash
npx skills add pluginagentmarketplace/custom-plugin-java --skill java-concurrency -a gemini-cli
```

2. **Командой платформы**
```bash
gemini skills install https://github.com/pluginagentmarketplace/custom-plugin-java --path skills/java-concurrency
```

### Windsurf (Devin Desktop)

**Вручную: положить файлы**
- Файл: `.devin/skills/java-concurrency/SKILL.md` — Старый путь .windsurf/skills/ тоже читается

### OpenCode

**Через Skills CLI (Vercel)**
```bash
npx skills add pluginagentmarketplace/custom-plugin-java --skill java-concurrency -a opencode
```

### Claude.ai

**Claude.ai**
- Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills

Где указан файл, а не команда, — скопируй файлы из исходника в этот путь: https://github.com/pluginagentmarketplace/custom-plugin-java/tree/HEAD/skills/java-concurrency/SKILL.md

## Когда брать
- написать потокобезопасный класс без гонок
- подобрать размер пула под нагрузку
- перевести цепочку вызовов на `CompletableFuture`
- разобрать зависание по дампу потоков
- перейти с обычных потоков на виртуальные в Java 21

## Примеры запросов агенту
- Разбери этот класс на гонки и предложи, где поставить `ReentrantLock`
- Настрой `ThreadPoolExecutor` под задачи с ожиданием ввода-вывода и объясни размер пула
- Перепиши эти последовательные вызовы на `CompletableFuture` с таймаутом

## Похожие
- [125-java-concurrency](https://affpapa.org/nevibecode/skills/125-java-concurrency.md) — скилл · 402 установки
- [java-code-review](https://affpapa.org/nevibecode/skills/java-code-review.md) — скилл · 1000 установок
- [m07-concurrency](https://affpapa.org/nevibecode/skills/m07-concurrency.md) — скилл · 3500 установок
- [csharp-concurrency-patterns](https://affpapa.org/nevibecode/skills/csharp-concurrency-patterns.md) — скилл · 1600 установок
- [go-concurrency](https://affpapa.org/nevibecode/skills/go-concurrency.md) — скилл · 1300 установок
- [asyncio-concurrency-patterns](https://affpapa.org/nevibecode/skills/asyncio-concurrency-patterns.md) — скилл · 489 установок

Из того же набора: [pluginagentmarketplace/custom-plugin-java](https://affpapa.org/nevibecode/by/pluginagentmarketplace/custom-plugin-java.md) — 4 карточки

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
