המילה coroutine מורכבת משתי מילים. המילה routine (פונקציה) והמילה cooperate (שיתוף פעולה). כאשר שתי פונקציות (או יותר) רצות (כמעט) במקביל כיוון שה-thread שבפעולה מריץ אותן תוך כדי מעבר מהיר מאחת לשניה (במהירות כה גבוהה עד כי נוצרת האשליה שהן רצות במקביל) נוכל לומר שהפונקציות הללו מהוות coroutines.
השימוש ב-coroutines בצד השרת
השימוש ב-coroutines מאפשר לנו אסינכרוניות עם performance מוצלח יותר בהשוואה לאסינכרוניות שממומשת באמצעות threads כיוון שלהבדיל מ-thread אשר ממופה אליו native thread ברמת מערכת ההפעלה, ל-coroutine לא ממופה שום native thread. זוהי גם הסיבה לכך שיש אשר קוראים ל-coroutines בשם lightweight threads. בעבר היה מקובל להתמודד עם בעיות עומסים בצד השרת באמצעות threads. בשלב מסויים הופיעה האפשרות לפתח את צד השרת כך שיעבוד באופן אסינכרוני באמצעות thread בודד. אפשרות זו ממומשת בדרך כלל באמצעות node.js. לשימוש ב-coroutines בצד השרת יתרונות רבים, ובעיקר בכל הנוגע ל-performance.
הסמינר Coroutines in Kotlin
התמיכה ב-coroutines בשפת התכנות Kotlin קיימת באמצעות ספריה נפרדת שפותחה על ידי JetBrains. האפשרות לפתח קוד שכולל שימוש ב-coroutines קיימת גם בשפות תכנות אחרות (כגון Python). בסמינר Coroutines in Kotlin אנו מתמקדים בנושא Coroutines בשפת התכנות Kotlin.
הקורס Kotlin Programming
בקורס הציבורי Kotlin Programming אשר מועבר ברמת פרמיום כלולים שני מפגשים אשר מוקדשים לפיתוח באמצעות coroutines בשפת התכנות Kotlin.