Порівняльний аналіз функціональності корутин в сучасних мовах програмування.

No Thumbnail Available

Date

2024

Journal Title

Journal ISSN

Volume Title

Publisher

СНУ ім. В. Даля

Abstract

Корутини - це спрощені потоки-функції, які не створюють нових реальних потоків для кожної асинхронної операції, а виконуються в контексті уже раніше створених реальних потоків. Вони використовують меншу кількість потоків та ефективно застосовують їх повторно, що дозволяє знизити накладні витрати на створення та знищення додаткових потоків, а також на дороговартісне перемикання контекстів між цими потоками операційною системою. Корутини дозволяють писати асинхронний код, який виглядає як послідовний і легко читається, забезпечуючи ефективне використання ресурсів і виконання задач додатка. В останній час корутини стали широко використовуватись при розробці настільних, Android- і веб-додатків завдяки їх лаконічності та простоті використання, оскільки розробники можуть оголошувати функції, які призупиняють виконання без блокування потоку і потім продовжують роботу після завершення асинхронної операції. Зараз корутини є функціональною частиною найбільш використовуваних продуктових мов програмування, таких як Kotlin та C++, що означає, що вони інтегровані в мову синтаксично, семантично та підтримуються відповідними стандартними бібліотеками. Це робить їх застосування природним та зручним для розробників, які вже використовують відповідну мову програмування. Слід зауважити, що в клієнтській мові веб-програмування JavaScript функціональність корутин практично повністю перекривається функціями зворотного виклику, об’єктами Promise, async-функціями, оператором await та функціями-генераторами, які є базою асинхронного програмування в веб-браузерах.

Description

Keywords

асинхронне виконання, корутина, потік, подія, функція зворотного виклику, проміс, async-функція, оператор await

Citation

Щербаков Є. В., Щербакова М. Є. Порівняльний аналіз функціональності корутин в сучасних мовах програмування. Наукові вісті Далівського університету. 2024. №27.