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