سؤال

وأنا أتعلم الهدف-C، وسوف يتم تطوير تطبيق معالجة الفيديو.

وأنا أقرأ دليل المطور على التفاح وركضت إلى أشياء عملية. أنا فقط بحاجة الى بعض التوضيحات ما الفرق بين عمليات والمواضيع والعيوب، ومزايا، وحالات الاستخدام.

ومن ما قرأت، العملية مستوى أعلى من إدارة عملية / مهمة التطبيق. وNSOperationQueue يمكن التعامل مع موارد التشغيل والتزامن.

وما لا نفهمه هو أن عملية يمكن تشغيلها مباشرة في الموضوع، وأنا لست واضحة جدا على هذا المفهوم. أنا لست لمسح على الفرق بين العمليات والمواضيع.

يرجى تزويدي أكبر قدر من المعلومات / الخلفية على اثنين ممكن.

وشكرا جزيلا للجميع.

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

المحلول

والفرق بين NSOperation والمواضيع هي واحدة من التجريد. مؤشر ترابط على مستوى منخفض (التي تعمل على مستوى النظام) بناء التي لتنفيذ عدة "خيوط" من التعليمات البرمجية بشكل متزامن. وعلى الرغم من الكاكاو يوفر API NSThread، بل هو في الأساس مجمع على API pthreads. NSOperation هو التجريد على مستوى أعلى من مهمة التي ترغب في تنفيذ. سوف NSOperationQueue جدولة تنفيذ طابور من NSOperations وذلك للاستفادة من الحد الأقصى وحدة المعالجة المركزية المتوفرة (ق). على نظام متعددة النواة، وسيتم تنفيذ NSOperations متعددة في وقت واحد باستخدام مجموعة من المواضيع التي NSOperationQueue يحافظ. وميزة استخدام هذا API على مستوى أعلى هو أنه يتيح لك التفكير في "العمليات" التي ترغب في القيام بدلا من كيفية الجدول الزمني لها. العيب (وبالتالي الاستفادة من استخدام NSThread مباشرة) هو أن لديك المزيد من السيطرة على جدولة موضوع والتواصل بين موضوع والمواضيع الأخرى (انظر -[NSObject performSelector:withObject:onThread:]). للمهام ذرية، مثل معالجة الفيديو، هو NSOperation الأرجح أفضل مناسبا.

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