لماذا Isolates بدلًا من Threads
افهم نموذج Dart المعزول للذاكرة
لماذا Isolates بدلًا من Threads درس مجاني في Dart Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Dart Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Dart Academy 4 دروس في المجموع.
خيط واحد افتراضيًا
يعمل كود Dart داخل isolate واحد، وهو عامل يمتلك ذاكرته الخاصة وحلقة أحداث خاصة به. ويحدث كل شيء هنا ما لم تطلب المزيد.
ماذا يعني Isolate
الاسم يوضح المعنى: كل isolate معزول. ولا يمكنه الوصول مباشرةً إلى متغيرات أو كائنات isolate آخر. 🔒
لا توجد ذاكرة مشتركة
تتشارك الخيوط في كثير من اللغات الذاكرة، مما يفتح الباب أمام حالات التنافس. ولا تملك Dart isolates ذاكرة مشتركة، لذا تختفي هذه الفئة كاملة من الأخطاء.
لماذا يفيدك ذلك
بما أنه لا توجد بيانات مشتركة، فلن تحتاج أبدًا إلى أقفال أو mutexes بين isolates. وتظل التزامنية أبسط بكثير وأسهل للفهم.
التواصل عبر الرسائل
تتعاون isolates عبر تمرير رسائل، لا عبر لمس بيانات بعضها بعضًا. تخيل الأمر كإرسال نسخة بالبريد بدلًا من مشاركة مكتب. 📬
تُنسخ الرسائل
عند إرسال البيانات بين isolates، تقوم Dart عادةً بنسخها. ويحصل المستقبل على نسخته الخاصة، لذلك لا يستطيع أي طرف إفساد بيانات الطرف الآخر.
الـ isolate الرئيسي
يبدأ كل برنامج داخل main isolate. وفي Flutter، توجد واجهة المستخدم هنا، لذلك يجب أن يظل مستجيبًا.
عندما يحظر الرئيسي التنفيذ
يحظر العمل المكثف على main isolate حلقة الأحداث. فتتجمد واجهة المستخدم وتسقط الإطارات، لأن لا شيء آخر يستطيع العمل في أثناء ذلك.
async لا يعني التوازي
تذكر أن async لا يزال يعمل على isolate واحد. فهو يتناوب بين الأعمال، لكنه لا يضيف توازيًا حقيقيًا للمعالج عند إجراء الحسابات الثقيلة.
تعمل Isolates بالتوازي
يمكن لـ isolate ثانٍ أن يعمل على نواة أخرى من نوى CPU في الوقت نفسه. وهذا هو التوازي الحقيقي، وهو مثالي لإجراء الحسابات المكثفة.
متى تستخدم واحدًا
استخدم isolate للمهام المكثفة على CPU، مثل تحليل JSON ضخم أو معالجة الصور. أما انتظار عمليات الإدخال والإخراج، فيكفيه async العادي.
اختبار سريع
لماذا تتجنب Dart isolates حالات التنافس؟
مراجعة
يمتلك isolate في Dart ذاكرة خاصة وحلقة أحداث خاصة به. وتعمل isolates بالتوازي وتتواصل عبر رسائل منسوخة، مما يمنحك تزامنًا آمنًا. ✅
الأسئلة الشائعة
هل درس «لماذا Isolates بدلًا من Threads» مجاني؟
نعم — نص درس «لماذا Isolates بدلًا من Threads» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Dart Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Dart Academy 4 دروس في المجموع.
ماذا ستتعلم في «لماذا Isolates بدلًا من Threads»؟
افهم نموذج Dart المعزول للذاكرة تتمرن على Dart Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Dart Academy؟
لا تُشترط خبرة سابقة. Dart Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.
كم من الوقت يستغرق درس «لماذا Isolates بدلًا من Threads»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Dart Academy هذا؟
نعم. كل درس في Dart Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- لماذا Isolates بدلًا من Threads
- استخدام Isolate.run لنقل العمل سريعًا
- إنشاء العزلات وتمرير الرسائل
- المهام كثيفة الحسابات دون تقطّع