Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

ما هو الـ Coroutine؟

جزء من قسم Logic & Flow في رحلة Lua على Coddy — الدرس 48 من 54.

فكر في لعب لعبة فيديو. يمكنك إيقافها مؤقتًا في أي لحظة، والذهاب لفعل شيء آخر، ثم العودة لاستئناف اللعب من حيث توقفت تمامًا. تعمل الـ Coroutines في لغة Lua بطريقة مماثلة.

الروتين المساعد (Coroutine) هو بمثابة وظيفة خاصة يمكنها إيقاف نفسها مؤقتاً في منتصف التنفيذ ثم المتابعة لاحقاً من تلك النقطة بالضبط. وعلى عكس الوظائف العادية التي تعمل من البداية إلى النهاية دون توقف، تمنحك الروتينات المساعدة التحكم في وقت إيقافها واستئنافها.

تتيح هذه القدرة شيئاً يسمى تعدد المهام التعاوني. فبدلاً من تشغيل مهام متعددة في نفس الوقت تماماً، تسمح لك الـ coroutines بالتبديل بين المهام المختلفة طواعية.

يعمل روتين مساعد (coroutine) واحد لفترة وجيزة، ثم يتوقف مؤقتاً، ويحل محله روتين آخر، وهكذا. يتعاون كل روتين مساعد من خلال تحديد متى يعيد التحكم.

تُعد الروتينات المساعدة (Coroutines) مفيدة عندما تحتاج إلى تقسيم العمليات التي تستغرق وقتاً طويلاً، أو إدارة الأنظمة القائمة على الأدوار، أو إنشاء تسلسلات تحتاج إلى تذكر حالتها بين الاستدعاءات. في الدروس القادمة، ستتعلم كيفية إنشاء الروتينات المساعدة (Coroutines) وإيقافها مؤقتاً واستئنافها في لغة Lua.

ورقة مرجعية

تُعد الكوروتين (coroutine) وظيفة خاصة يمكنها إيقاف نفسها مؤقتاً أثناء التنفيذ والاستئناف لاحقاً من نفس النقطة تماماً، على عكس الوظائف العادية التي تعمل من البداية إلى النهاية دون توقف.

تتيح الكوروتينات تعدد المهام التعاوني (cooperative multitasking)، حيث تتبادل المهام التحكم فيما بينها طواعية بدلاً من العمل في وقت واحد. يتم تشغيل كوروتين واحد، ثم يوقف نفسه مؤقتاً، ثم يتولى آخر المهمة، وتستمر الدورة.

تُعد الكوروتينات مفيدة لتقسيم العمليات طويلة الأمد، أو إدارة الأنظمة القائمة على الأدوار، أو إنشاء تسلسلات تحتاج إلى تذكر حالتها بين الاستدعاءات.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow