TGViewer
Java Developer Java Developer @java_tg · 14.8K subscribers
Post #1332 5.26K
⌨️ Паттерн «Poison Pill» в Java

Poison Pill, или «ядовитая пилюля», — это шаблон, используемый для мягкой остановки потока или процесса.

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

Принцип работы:
1. Архитектура Poison Pill включает несколько компонентов: Message, Producer, Consumer и MessageQueue.

2. Message определяет структуру сообщений. Сообщения могут включать различные заголовки и тело сообщения. Пример реализации — SimpleMessage.

3. MessageQueue объединяет точки публикации MqPublishPoint и подписки MqSubscribePoint. Он представляет собой очередь, через которую сообщения передаются от производителей к потребителям. Пример реализации — SimpleMessageQueue, использующий BlockingQueue для хранения сообщений.

4. Producer создает сообщения и помещает их в очередь. Т. е. когда производитель завершает свою работу, он отправляет сообщение Poison Pill, чтобы уведомить потребителей о необходимости остановки.

5. Consumer является потребителем и извлекает сообщения из очереди и обрабатывает их. Если потребитель получает Poison Pill, он завершает свою работу.


100 🕺 — и я пишу новый пост (тему предлагайте в комментариях)

➡️ Java Developer | #паттерн
  • ❤ 10
More from @java_tg
  1. Oct 11, 2026👩‍💻 Как автоматизировать code style в Java-проекте Checkstyle проверяет исходники по зад…
  2. Oct 10, 2026👩‍💻 Как ускорить UI-тесты на Java в несколько раз Автор предлагает превратить логин из U…
  3. Oct 9, 2026👩‍💻 REST или GraphQL: что лучше для backend В статье оба подхода разбираются на практиче…
  4. Oct 8, 2026👩‍💻 Что такое API и зачем оно нужно? Простой разбор API, endpoints, JSON и взаимодействи…
  5. Oct 7, 2026👩‍💻 Большая база вопросов для Java-собеседований Основные разделы: 🫡 Java Core и JVM; �…
  6. Oct 6, 2026Post #4392
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →