Порівняльний аналіз функціональності корутин в сучасних мовах програмування.
No Thumbnail Available
Date
2024
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
СНУ ім. В. Даля
Abstract
Корутини - це спрощені потоки-функції, які не створюють нових реальних потоків для кожної асинхронної операції, а виконуються в контексті уже раніше створених реальних потоків. Вони використовують меншу кількість потоків та ефективно застосовують їх повторно, що дозволяє знизити накладні витрати на створення та знищення додаткових потоків, а також на дороговартісне перемикання контекстів між цими потоками операційною системою. Корутини дозволяють писати асинхронний код, який виглядає як послідовний і легко читається, забезпечуючи ефективне використання ресурсів і виконання задач додатка. В останній час корутини стали широко використовуватись при розробці настільних, Android- і веб-додатків завдяки їх лаконічності та простоті використання, оскільки розробники можуть оголошувати функції, які призупиняють виконання без блокування потоку і потім продовжують роботу після завершення асинхронної операції. Зараз корутини є функціональною частиною найбільш використовуваних продуктових мов програмування, таких як Kotlin та C++, що означає, що вони інтегровані в мову синтаксично, семантично та підтримуються відповідними стандартними бібліотеками. Це робить їх застосування природним та зручним для розробників, які вже використовують відповідну мову програмування. Слід зауважити, що в клієнтській мові веб-програмування JavaScript функціональність корутин практично повністю перекривається функціями зворотного виклику, об’єктами Promise, async-функціями, оператором await та функціями-генераторами, які є базою асинхронного програмування в веб-браузерах.
Description
Keywords
асинхронне виконання, корутина, потік, подія, функція зворотного виклику, проміс, async-функція, оператор await
Citation
Щербаков Є. В., Щербакова М. Є. Порівняльний аналіз функціональності корутин в сучасних мовах програмування. Наукові вісті Далівського університету. 2024. №27.