Що таке асинхронне програмування java, блог тільки про java

Що таке асинхронне програмування java, блог тільки про java
Патерн програмування «Асинхронність» - особливий, добре інтегрований-ний випадок множинних потоків. Внаслідок самої сутності потоків багато- потокові моделі потребують системах повідомлення і залежать від шаблонного коду для запуску потоків.

Асинхронні звернення використовуються навіть в одногопоточних середовищах, таких як NodeJS. Майже всі призначені для користувача інтерфейси підтримують асинхронне виконання для утримання UI в активному, реагує на дії пользовате-ля стані.

Проте асинхронне програмування може бути корисним і в інших місцях, крім призначених для користувача інтерфейсів, зазвичай на серверній стороні. Hи J2SE. ні J2ЕЕ не надавали вбудованої «легкої» реалізації для асинхронні-ного програмування.

З появою платформи Jаvа ЇЇ 5 був випущений фрейм-ворк для паралелізму (Concurrency Framework), заснований на JSR166. JSR166 включав безліч утиліт, які робили асинхронне програмування не тільки можливим, але і більш легким і краще керованим. інтерфейс Future також надав розробникам спосіб реалізації асинхронного виконання методу.

Тим часом Spring представив увазі розробників асинхронні визо-ви методів, що активізуються за допомогою анотацій. Платформа Jаvа ЇЇ НЕ вклю-чала таке зручне рішення аж до версії 6. Анотація @Asynchronous з'явилася з виходом платформи Jаvа ЇЇ 6 і надала зручну можливість реалізації асинхронного виконання методу.

Асинхронне програмування не вказано в чис-ле патернів проектування ні в книзі GoF. ні в «патерни проектування«. Якби воно там присутнє, його опис могло б бути таким: «Забезпечити-кість спосіб виклику методу без блокування викликає методу».

Сама сутність виконання методів полягає в блокуванні зухвало-го аж до завершення виконання викликаного методу. Така поведінка очевидний-но і цілком очікувано, проте не у всіх випадках бажано. Майже всі UI-фрейм-ворк і веб-платформи засновані на неблокірующіх запитах.

Патерн «Асинхронність» заснований на підході «самонаведення». коли операція виконується паралельно або таким чином, при якому не блокується виконан-няющій потік, а результат перевіряється в міру готовності. Зазвичай асинхронний підхід використовує паралельне виконання. Діаграма класів не цілком точно відображає суть такого підходу, краще буде продемонструвати його за допомогою блок-схеми (рис. 1).

Що таке асинхронне програмування java, блог тільки про java
Мал. 1. Блок-схема асинхронности

Схожі статті