‫مرحبًا بعودتك.
‫في هذا الفيديو ، سننظر في تجمعات التهديدات.
‫لذلك ، سننشئ سلاسل رسائل متعددة ونرى ما سيحدث.
‫لذلك ، دعنا نمضي قدمًا أولاً لإنشاء سلسلة رسائل أساسية جدًا وسأتخلص
‫من عناصر مصدر الإكمال.
‫ولذا فنحن في خيط عام للغاية هنا.
‫هذا خيط عام استخدمناه حتى الآن.
‫وهنا ننتظر 1/2 ، على سبيل المثال ، ولديها رقم سلسلة الرسائل ولكي نبدأها بالطبع نحتاج
‫إلى استدعاء طريقة البداية هنا في النهاية.
‫إذن الآن هذا سيكون مجرد موضوع وسيبدأ.
‫لذلك لا شيء جديد هنا.
‫لقد فعلنا ذلك عدة مرات هناك.
‫لذا فإن الاختلاف الوحيد الآن هو أنني أرغب في استخدام شيء
‫يسمى تجمع الخيوط ، ولكن قبل أن أفعل ذلك ، سأستخدم رقمًا معدودًا كهذا ، وسأقوم
‫بتشغيل نطاق من الصفر لنفترض الآن 100 في القائمة ولكل إدخال ، أود أن أفعل شيئًا ما.
‫لذلك سأقول فقط قم بتشغيل كود معين.
‫إذن هذا مجرد سطر واحد من التعليمات البرمجية إلى حد كبير.
‫وهناك أريد إنشاء مواضيع.
‫لذا فإن ما ستفعله هو أن هذا العدد أو العدد الذي لا يمكن حصره ، في الواقع ، سوف يقوم بإنشاء سلاسل
‫رسائل متعددة وسيقوم بإنشاء 100 منها.
‫لذا سأستخدم رابطًا هنا.
‫لذا فإن استخدام ارتباط النظام من أجل استخدام المعدود ويجب أن يطلق عليه النطاق مع E في النهاية.
‫لذا ها نحن ذا.
‫لذا فإن هذا سيفي بالغرض هو ببساطة إنشاء 100 موضوع وسنرى كل هذه الخيوط على وحدة التحكم.
‫لذلك دعونا نبدأ مع ذلك.
‫وها نحن ذا.
‫وكما ترى ، تبدأ الخيوط وتنهي الخيوط.
‫و 102 هو الخيط الأخير.
‫وكما ترى ، فقد بدأ بثلاثة.
‫إذن فهو يبدأ من ثلاثة وستة وخمسة وما إلى ذلك.
‫لذا فالترتيب ، كما ترى ، مختلف تمامًا عما نتوقعه.
‫إذن الخيوط ، لديهم معرف مختلف ثم الترتيب الذي نتوقعه ، ولكن بعد ذلك يبدأون وينتهون
‫وربما كان ذلك سريعًا بعض الشيء.
‫لذلك دعونا ننشئ خيطًا أكثر بقليل.
‫لنفترض أن 1000 موضوع وكما ترى ، فإنه ينشئ أطنانًا من الخيوط ، ولكن تم إنهاء الخيوط قبل أن يبدأ
‫الآخرون.
‫لذا فإن هذا العدد المعدود يبدأ بها أو يخلقها بأسرع ما يمكن ، وبأسرع ما يمكن.
‫ولكن كما ترى ، يستغرق الأمر بعض الوقت.
‫لنفترض أن ما يقرب من 100 مللي ثانية أو نحو ذلك لإنشاء خيط كما نحن ، يقوم بإنشائها ثم يبدأ في الانتهاء
‫منها.
‫لذلك بعد 1/2 تم إنشاء ستة خيوط فقط ثم الخيط خمسة.
‫لذلك تم إنهاء واحدة من الأوائل.
‫لذا كما ترون ، فإنه ينشئ تلك الخيوط وهذا ليس فعالًا جدًا لأنه حسنًا ، لا يمكننا التحكم في تلك الخيوط ، لا يمكننا
‫التحكم في هذا المقدار من الخيوط.
‫وهذا جانب مهم جدًا من الخيوط التي يجب أن تكون حريصًا جدًا ودقيقًا للغاية عند التعامل
‫مع الخيوط.
‫أنت بحاجة إلى معرفة ما تريد القيام به مع هذا الموضوع ولماذا هناك وكيف تعمل بشكل عام مع كل
‫ما هو داخل الموضوع.
‫هذا مجرد مثال على الخيوط ، كيف يمكنك إنشاء عدة منها ، وقد أنشأت للتو 1000 موضوع من هذا
‫القبيل.
‫والآن دعونا نلقي نظرة على تجمعات الخيوط ، لأن تجمعات الخيوط هي طريقة
‫مختلفة قليلاً في استخدام الخيوط وهي أكثر أمانًا ، دعنا نقول ، لأنها لا تنشئ 1000 سلسلة غير
‫مطلوبة.
‫لديها فقط المواضيع المطلوبة حاليا.
‫لذلك دعونا ننشئ تجمع مؤشرات الترابط هنا ونضع عنصر عمل المستخدم في قائمة الانتظار Q طريقة للتنفيذ.
‫يتم تنفيذ الطريقة عندما يصبح مؤشر ترابط تجمع مؤشرات الترابط متاحًا ، لذلك فقط
‫إذا كان متاحًا ، فسيتم تنفيذ ذلك وسيحتاج إلى كائن هنا.
‫لذلك هناك نوعان مختلفان هنا.
‫ترى رد الاتصال والعنصر وسأعطيه أوه مثل كائن.
‫سأسميها فقط ، لا شيء مميز هنا وما سأقوم بتنفيذه في مجموعة الخيوط.
‫لذلك سأقول فقط أعطني معرف الموضوع أو رقم الموضوع وحسنًا ، دعنا نقول متى بدأ
‫ومتى انتهى.
‫هذا إلى حد كبير كل ما أريد أن أفعله مع مجموعة الخيوط هذه.
‫وكما ترون هنا ، نحن لا ننشئ على وجه التحديد ، لا نقوم بإنشاء سلاسل رسائل هناك ، ولكن تجمع
‫الخيوط سيفعل ذلك من أجلنا.
‫لذلك هناك الكثير من العمل الذي يتعين القيام به ، مثل 1000 موضوع يجب التعامل معها.
‫وكما ترى ، فإنه ينشئ فقط كمية محددة من سلاسل الرسائل.
‫وكما ترى ، تبدأ وتنتهي الخيوط أكثر أو أقل في نفس الوقت.
‫ويمكنك أن ترى أيضًا أنه ليس لدي العديد من النوى على وحدة المعالجة المركزية الخاصة بي هنا لأنها تعمل فقط مع كمية محددة من سلاسل
‫العمليات في نفس الوقت.
‫لذا فإن تجمع الخيوط سوف يتعامل مع الأشياء بشكل أكثر سلاسة كما ترون.
‫ولكن بالطبع يستغرق الأمر وقتًا طويلاً للوصول إلى كل هذه الـ 1000 موضوع.
‫لكن كما قلت ، إذا استخدمت التهديدات ، فعليك السيطرة عليها.
‫لذلك لا تستخدم التهديدات بشكل عشوائي.
‫إلى حد كبير ، الشيء الرئيسي الذي ستستخدم فيه التهديدات هو عندما تفعل شيئًا في الخلفية وتقوم
‫بشيء ما في المقدمة.
‫لذلك في المقدمة عادة ما يكون شيء مثل واجهة المستخدم.
‫لذلك عندما تستخدم WPF أو إذا كنت تستخدم تطبيقات مع Xamarin أو تنشئ تطبيقات باستخدام Xamarin ، فكل شيء
‫يحدث في الواجهة الأمامية ، لذلك في واجهة المستخدم يتم بواسطة مؤشر الترابط الرئيسي ثم أو بواسطة مؤشر
‫ترابط واجهة المستخدم ثم شيء مثل تنزيل مقاطع الفيديو أو تنزيل البيانات بشكل عام من الإنترنت
‫أو الوصول إلى البيانات من القرص الصلب أو من بطاقة SD أو أي شيء آخر.
‫قد يستغرق ذلك بعض الوقت.
‫حتى لو كانت بضع ميلي ثانية فقط أو ليست زوجين ، ولكن عدة أجزاء من الثانية ، فهذا بالفعل
‫شيء يجب القيام به في الخلفية ، وإلا فسيتم تجميد واجهة المستخدم الخاصة بك لأنه حسنًا ، لن يكون
‫جاهزًا للقيام بشيء ما لأن الخيوط كلها مشغول.
‫حسنا.
‫هذا يتعلق بإنشاء تجمعات الخيوط.
‫وإذا كان لديك الكثير من الأشياء للقيام بها ، فيمكنك استخدام مجموعات الخيوط.
‫لذلك هناك العديد من الأشياء التي يجب مراعاتها عند استخدام مجموعات التهديدات.
‫لذلك ، بشكل عام ، توجد مجموعات التهديدات لتشغيل عمل محدد أو القيام بأعمال محددة أو عناصر عمل ، وسوف ينتظرون إلى حد كبير حتى
‫يصبح مؤشر الترابط التالي جاهزًا أو يتم الانتهاء من خيط واحد قبل أن يبدأ التهديد التالي أو قبل
‫أن يبدأ بعنصر العمل التالي .
‫إذن فهذه ميزة تجمعات التهديدات أنه ليس لديهم وقت فراغ أو وقت نوم حيث لا يحدث شيء.
‫إلى حد كبير لأنه يمكن أن تكون هناك مواقف لا يلزم فيها فعل أي شيء باستخدام وحدة المعالجة المركزية الخاصة بك أو بواسطة وحدة المعالجة المركزية
‫الخاصة بك.
‫وهذا جيد تمامًا لأنه بخلاف ذلك سيكون ثقيلًا جدًا على وحدة المعالجة المركزية إذا كان يجب تشغيلها طوال الوقت
‫والقيام بالأشياء طوال الوقت أو العمل الثقيل.
‫ولكن بشكل عام ، فإن مجموعة التهديدات هذه تقول ببساطة ، حسنًا ، إذا لم يكن هناك شيء أو إذا كانت هناك مساحة كافية
‫لي لتشغيل سلسلة رسائل أو إنشاء سلسلة رسائل جديدة ، فسأقوم بذلك وسأقوم بتنفيذ الأشياء التي يجب
‫ان تنجز.
‫بالمناسبة ، مؤشرات الترابط في تجمع مؤشرات الترابط المُدار هي مؤشرات ترابط خلفية موجودة هناك.
‫الموضوع هو الخلفية ، الخاصية صحيحة.
‫لذلك لم نر ذلك من قبل.
‫ولكن إذا قمت بإنشاء سلسلة رسائل مثل ذلك ، فدعني هنا أحصل على هذا الموضوع الجديد من هنا.
‫وإذا كنت أرغب في ضبط ذلك في الخلفية ، يمكنني القيام بذلك.
‫فهل الخلفية متساوية على سبيل المثال.
‫هذه هي الطريقة التي يمكنني بها ضبط هذا الموضوع على خلفيتك.
‫وفي قائمة الانتظار في قائمة انتظار تجمع مؤشرات الترابط هذه ، لا توجد سوى مؤشرات ترابط في الخلفية.
‫هناك نقطة أخرى يجب مراعاتها وهي عندما يعيد تجمع التهديد استخدام التهديد ، ما رأيناه هنا.
‫لذلك فهو يعيد استخدام معرف التهديد الذي رأيناه.
‫الصحيح.
‫هذا المعرف المُدار للتهديد ، تمت إعادة استخدامه كثيرًا.
‫ثم لا يقوم تجمع التهديدات بمسح البيانات الموجودة في التخزين المحلي للتهديدات.
‫لذلك ، عندما تقوم طريقة بفحص التخزين المحلي للتهديد ، فإن القيم التي تجدها قد تُترك من استخدام
‫سابق لتهديد تجمع التهديد.
‫لذلك هذا شيء يجب أن تفكر فيه.
‫سأشارك رابطًا معك يمكنك قراءة المزيد حول مجموعات التهديدات بشكل عام.