The word coroutine is a composition of two words. The word routine (function) and the word co (cooperation). When two (or more) functions run (almost) at the same time because the thread in action runs them while quickly switching from one to the other (so fast that we get the illusion that they run at the same time), we can say that these functions are coroutines.
Coroutines on The Server Side
The use of coroutines allows us asynchrony with better performance compared to the asynchrony we get through threads because, unlike a thread to which a native thread is mapped at the operating system level, no native thread is mapped to a coroutine. This is also the reason for naming coroutines as lightweight threads. In the past, it was common to deal with server-side overloading problems using threads. At a certain point, the possibility appeared to develop the server side so that it would work asynchronously using a single thread. This option is usually implemented using node.js. The performance taking this approach is usually very attractive. The use of coroutines on the server side has many advantages, especially when it comes to performance. As a result, coroutines based frameworks (in Kotlin) have been recently developed. Ktor is one of them.
The Coroutines in Kotlin Seminar
We have recently completed the development of the Coroutines in Kotlin professional seminar. This seminar focuses on the use of Coroutines in Kotlin.
The Kotlin Programming Course
The Kotlin Programming course is a premium public course that can be also delivered upon request in high tech companies that want to equip their software developers with the skills and knowledge to develop in Kotlin. Two meetings in this course are dedicated to the Coroutines topic.
We continuously develop new seminars and new courses that focus on various advanced topics in software development. If you happen to have interest in a specific topic for which we still haven’t developed a seminar or a course we would be very glad to get more information about that specific topic.