سؤال

أريد أن أعرف ما إذا كانت الكتل في C / Cocoa تعمل على خيط منفصل إلى الخيط الرئيسي. هل ستكون مفيدة لتنفيذ التعليمات البرمجية باهظة الثمن من الناحية الحسابية مع ترك واجهة المستخدم مستجيبة؟

هل كانت مفيدة؟

المحلول

الكتل هي مجرد مقتطفات من التعليمات البرمجية المجمعة في كائن قابل للاتصال. كيفية تشغيلها تصل إلى الكود الذي يطلق عليه.

لا يمكن تشغيل الكتل على موضوع منفصل فحسب ، بل هو بالضبط السبب في إدخال مفهوم الكتل. إنه موجود لدعم Grand Central Dispatch ، الذي يخفي الكثير من تعقيد البرمجة المتزامنة وراء نموذج موجه نحو المهمة.

نصائح أخرى

ليس عليهم الجري على موضوع آخر ، لكنهم يستطيعون ذلك. يمكنك جدولةها على NSOperationQueues أو قوائم قوائم GCD ، ويمكن استنزاف قوائم الانتظار بواسطة خيوط الخلفية.

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

يمكنك استخدام GCD لجدولة كتل للإصدار على المواضيع الأخرى. تم تقديم الاثنين معًا ، لذلك عادة ما يذكر أي مناقشة للآخر. ومع ذلك ، فإن الكتل ليست في حد ذاتها آلية Multithreading.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top