‫مرحبًا بعودتك.
‫في هذا الفيديو أود أن أتحدث عن الانضمام وهو على قيد الحياة.
‫لذا فإن الانضمام هو طريقة يمتلكها مؤشر الترابط أو فئة مؤشر الترابط ويمكننا استخدامها وهي حية
‫كخاصية لها.
‫لذلك دعونا ننشئ خيطًا هنا أو في الواقع خيطين وقد أنشأت طريقتين بالإضافة إلى
‫الخيط ، ووظيفة واحدة وخيط ليعمل.
‫وما يفعلونه هو مجرد القول بأنهم قد بدأوا.
‫لذا بدأت الوظيفة الثالثة وبدأ مؤشر الترابط في العمل.
‫لذا يمكنك الآن المضي قدمًا ونسخ ذلك فقط أو بناء نفسك بسرعة حقيقية ومن ثم يمكنك المضي قدمًا.
‫لذا هنا سأقول فقط أن خيط المجال قد بدأ وفي النهاية سيقول أن الموضوع الرئيسي انتهى.
‫حتى الآن لا شيء جديد.
‫إذا بدأنا ذلك باستخدام Control Five ، على سبيل المثال ، فستظل وحدة التحكم مستيقظة.
‫بدأ الخيط الرئيسي وانتهى الخيط الرئيسي.
‫اضغط على أى زر للاستمرار.
‫تمام.
‫لذلك يمكنك أن ترى أنها بدأت وانتهت وحدث ذلك بسرعة حقيقية وحقيقية.
‫لذلك لا يحدث الكثير هنا.
‫والآن دعونا نغير ذلك.
‫دعونا ننشئ بعض المواضيع هناك.
‫لذلك دعونا ننشئ خيطًا جديدًا يسمى الخيط الأول.
‫حتى الخيط.
‫ومن أجل استخدام الخيط ، نحتاج إلى التنفيذ باستخدام خيوط النظام.
‫لذا يمكننا الآن استخدام الخيوط وسأسمي ذلك الخيط الواحد.
‫وما سيفعله هو أنه سيكون ببساطة خيطًا جديدًا يستدعي وظيفة الخيط واحدًا أو وظيفة
‫خيط واحدة.
‫لذا ، سأقوم بتشغيل هذا الكود هنا ، سوف نسميهم الطريقة.
‫وبعد ذلك ، خيط آخر ، سأسميه الخيط الثاني ، والذي سيكون أيضًا خيطًا وهنا
‫خيطًا ليعمل.
‫لذلك كما ترون ، هناك العديد من الأحمال الزائدة بداية الخيط ، بدء الخيط المحدد المعلمات وبدء الخيط.
‫لذا فإن الشيء الذي نقوم به هو مجرد بداية هذا الموضوع.
‫لذا فإن start عبارة عن مفوض لبدء سلسلة الرسائل يمثل الطرق التي سيتم استدعاؤها عندما يبدأ تنفيذ
‫الموضوع.
‫لذلك ستكون هذه هي طريقتنا.
‫إذاً هذا الخيط أو هذه الوظيفة الثالثة ، وهي ليست في الحقيقة طريقة ، إنها
‫دالة لأنها ليست ضمن فئة موجهة للكائنات.
‫لكن على أي حال ، دعنا نمضي قدمًا وننشئ هذه الوظيفة.
‫كما ترى ، لست بحاجة إلى الأقواس هنا لأننا لا نسميها في الواقع مفوضًا
‫هنا.
‫حسنا.
‫بعد ذلك ، ما يتعين علينا القيام به هو ببساطة بدء تلك الخيوط.
‫لذلك دعونا نفعل ذلك الخيط نقطة واحدة للبدء والخيط للبدء.
‫وسأقوم فقط بالضغط على عنصر التحكم f خمسة لبدء تشغيله وأرى أن الخيط الرئيسي بدأ ، وانتهى الخيط الرئيسي
‫، وبدأت وظيفة واحدة للخيط وبدأت الوظيفة الثالثة.
‫لذلك لم ينتهوا لأننا لم ننفذ أي رسالة ختامية بعد.
‫فلنبدأ الآن ونستخدم الطريقة المشتركة على هذين الموضوعين.
‫لذا ، قم بربط نقطة واحدة ودعنا نتحقق مما انضم إلينا.
‫يقوم المفصل بحظر خيط الاستدعاء حتى ينتهي اللون الأحمر الذي يمثله هذا المثيل مع الاستمرار
‫في أداء com القياسي وإرسال ضخ الرسائل.
‫إذن ما سنفعله هو ببساطة كوم أو الانضمام إلى هذين الموضوعين.
‫إذن هذا الخيط مع الخيط الرئيسي ، هذا ما تفعله طريقة المفصل هذه وتحجب الخيط الرئيسي
‫في ذلك الوقت.
‫لذلك يتم استدعاؤه بواسطة الخيط الرئيسي.
‫هذا هو السبب في أنه يحجب الخيط الرئيسي.
‫لذلك يطلق عليه بشكل عام حظر سلسلة الاستدعاء.
‫وفي حالتنا ، فإن الخيط الاستدعاء هو الخيط الرئيسي لأننا داخل الخيط الرئيسي عندما
‫نسميه.
‫إذن ما نفعله بعد ذلك هو أيضًا الانضمام إلى الخيط الثاني.
‫لذلك نضم هذا إلى هذين الاثنين ودعنا نكتب شيئًا ما على وحدة التحكم.
‫CW ودعنا نقول أن الخيط قد تم القيام بوظيفة واحدة.
‫ودعنا نفعل الشيء نفسه بالنسبة للثاني.
‫لذلك دعونا نعيد تشغيله مرة أخرى ولن يحدث شيء كثير في الواقع.
‫دعني.
‫اضغط على وحدة التحكم خمسة حتى تظل وحدة التحكم الخاصة بي مستيقظة.
‫بدأ الخيط الرئيسي في بدء تشغيل الوظيفة الثالثة.
‫وهنا يجب أن يطلق عليه موضوع الخيط ليعمل.
‫حسنًا ، نحن الآن نقول أن الخيط الأول والخيط الثاني قد تم إنجازهما وبعد ذلك تم الانتهاء من الخيط الرئيسي
‫فقط.
‫لذلك هذا ليس شيئًا خياليًا ، ولا شيء جديد.
‫انها مجرد تنفيذ الاشياء خطوة بخطوة.
‫هذا ما يبدو عليه هنا.
‫ولكن بعد ذلك دعونا نفعل شيئًا مثيرًا للاهتمام.
‫دعونا نضيف نومًا هنا.
‫لذلك دعونا في الواقع نجعل الخيط ينام لمدة 3 ثوان.
‫لذا ، ينام الخيط ، 3000 مللي ثانية.
‫وما سيفعله ذلك هو أن هذه الطريقة ستقول الطريقة فقط ، بدأ الخيط ثم سينتظر
‫لمدة 3 ثوانٍ.
‫فلنعمل الآن على تشغيله مرة أخرى ولنقم بتشغيله مرة أخرى باستخدام عنصر التحكم f خمسة.
‫لذا هنا ، قم بتشغيلها ، ابدأها.
‫ثم بعد فترة ، خيط وظيفة واحدة.
‫فعله.
‫اسمحوا لي في الواقع إعادة إنتاج تلك السرعة الحقيقية.
‫لذا ، الثالثة والبدء في تشغيلها وبعد 3 ثوانٍ ، يمكنك رؤية وظيفة واحدة ثالثة تم إنجازها ، والثالثة تم إنجازها وانتهاء سلسلة
‫المحادثات الرئيسية.
‫لذا فإن الخيط الرئيسي ينتظر حتى يتم الانتهاء من الخيط الرئيسي أو الثالث.
‫وهذا يحدث لأننا انضممنا إليه هنا.
‫لذا ننضم إلى الخيط الأول ونقول ، حسنًا ، من فضلك انتظر حتى ننتهي.
‫الآن إذا نظرنا إلى الطريقة المشتركة ، فهناك شيء آخر مثير للاهتمام يجب مراعاته.
‫هناك العديد من الأحمال الزائدة ، لذا كما ترون ، هناك واحد فقط أو لدينا صفر معاملات هنا أو الحجج التي
‫قدمناها ، ولكن هناك عدة معاملات.
‫لذا يمكننا إضافة حجة أخرى هنا ، وهي الوقت الذي نريد الانتظار قبل أن نمضي قدمًا.
‫لذا هنا ، سأستخدم فقط إذا كانت نقطة الخيط هي النقطة الثالثة التي تستغرق وقتًا محددًا ويمكن
‫أن ترى مهلة ملي ثانية.
‫لنفترض أننا ننتظر 1/2 وسنمنح هذا الخيط 1/2 للانتهاء وإذا حدث ذلك في
‫غضون الوقت ، فإننا نقول أن الخيط وظيفة واحدة قد تم ، وإلا فإننا نقول إن شيئًا مثل مؤشر الترابط لم يتم تنفيذ وظيفة
‫واحدة في غضون 1 / 2.
‫حسنًا ، دعونا نتخلص من هذا المفصل هنا ودعنا نستبدل كل هذا الرمز بهذا.
‫فلنبدأ الآن في تشغيله مرة أخرى.
‫السيطرة على خمسة.
‫لذلك لم يتم تنفيذ الثلث الأمامي للوظيفة في غضون 1/2 مؤشر ترابط لتعمل الوظيفة الرئيسية المنتهية.
‫لذلك كما ترى ، لم يتم ذلك خلال الفترة الزمنية المحددة.
‫ولكن الآن دعنا نضيف رمزًا آخر هنا لأننا لم نشاهد هذا الموضوع مطلقًا.
‫تم إنجاز وظيفة واحدة.
‫لذلك دعنا نضيف شيئًا مثل وظيفة الخيط الأول التي تعود إلى main.
‫هذا يعني أنه تم إنجازه كثيرًا.
‫أو ربما ليست رئيسية.
‫ولكن للتلوين ، فلنقم بتشغيله مرة أخرى باستخدام وحدة التحكم الخامسة.
‫لذا بدأ التهديد بالوظائف ، دعني أسميها مرة أخرى مثلما انتهى التهديد الرئيسي لـ OC ثم لا ترى
‫إلا بعد ذلك الوقت ، لذلك فقط بعد 3 ثوانٍ ، قالت وظيفة واحدة ثالثة تعود إلى اللون.
‫لذلك كان التهديد الرئيسي قد تم بالفعل وعندها فقط عاد إلى اللون الذي كان يمثل التهديد الرئيسي.
‫عندها فقط وصل الأمر إلى ما هو جيد ، السطر 30 أو بعد ذلك في الواقع.
‫لذلك تم ذلك بالطريقة الرئيسية وعندها فقط تم تنفيذ هذا الرمز هنا.
‫لذلك كما ترى ، فقد حظر فقط الخيط الرئيسي لمدة 1/2.
‫لم يمنع التهديد الرئيسي حتى تم القيام به.
‫لذلك يقول حظر سلسلة الاستدعاء حتى ينتهي مؤشر الترابط الذي يمثله هذا المثيل أو ينقضي
‫الوقت المحدد مع الاستمرار في إجراء التعليقات الثابتة والضخ المدمج.
‫لذا ما يمكنك رؤيته هنا هو أنه يمكنك أن تقول ، حسنًا ، الموضوع الرئيسي ، من فضلك انتظر
‫1/2 وإذا لم يحدث أو إذا لم ينهي الثالث أشياءه ، فسيستمر.
‫لذلك سينضم إلى الخيط الثاني ثم سيقول فقط ، حسنًا ، لقد انتهيت ، تم تنفيذ
‫التهديد الرئيسي للخيط وما زال هناك وظيفة واحدة قيد التشغيل أو لا يزال الخيط قيد التشغيل ولا يزال
‫نائمًا وتنفيذ الكود بعد ذلك .
‫لكنها لا تفعل ذلك في الوقت المناسب كما ترون هنا.
‫لذلك لم يعد الخيط الرئيسي ينتظر بعد الآن.
‫لقد قال للتو ، حسنًا ، سأستمر ، سأنتقل بدونك.
‫إذن هذا هو الشيء المتعلق بربط الخيوط.
‫يمكنك أن ترى هنا كيف يعمل.
‫ثم الآن دعونا نلقي نظرة على هذه ملكية حية.
‫لذلك إذا كان الخيط الأول على قيد الحياة ، فهناك هذه الخاصية وكما ترى تحصل على قيمة تشير إلى حالة
‫تنفيذ الخيط الحالي ، مما يعني أن الخيط قد تم أو لم يتم؟
‫لذلك يقول هنا إذا كان الخيط لا يزال على قيد الحياة.
‫لذلك إذا كان لا يزال قيد التشغيل في النقطة التي يتم فيها تنفيذ هذا الرمز ، فافعل شيئًا ما.
‫لذا سأكتب شيئًا مثل الخيط الأول لا يزال يقوم بالأشياء ، لذلك لا يزال
‫ينفذ ويشغل الكود وإلا سأقول فقط أن الخيط الأول قد اكتمل ، لذا اكتمل مؤشر ترابط CW.
‫حسنا.
‫وهنا بالطبع ، نحتاج إلى إنهاء السلسلة الآن.
‫دعنا نتحقق من ذلك مرة أخرى.
‫وانتهى الخيط الرئيسي وسيتم إغلاق وحدة التحكم الخاصة بي بالفعل.
‫لذا اسمحوا لي أن أبدأ بالتحكم في خمسة خيوط رئيسية بدأت ، وبدأت وظيفة واحدة للخيط وما إلى ذلك.
‫لذلك لم يتم ذلك في غضون 1/2.
‫ثم تم الانتهاء من وظيفة الخيط الثانية.
‫لذلك تقول ، حسنًا ، لن أنتظر بعد الآن.
‫الخيط الرئيسي.
‫لذلك ينفذ الخيط الثاني بعد ذلك.
‫الثالث لا يزال يفعل الأشياء.
‫هذا يعني أن الخيط الأول على قيد الحياة ، وتم تنفيذه ، وبعد ذلك فقط يتم إنهاء التهديد الرئيسي.
‫لذلك يتم تنفيذ هذا الرمز هنا ، السطر 38 ومن ثم يتم استدعاء وظيفة مؤشر الترابط التي تعود إلى اللون أو
‫يتم تنفيذها.
‫حسنا.
‫هذا ما يمكنك التحقق منه.
‫يمكنك ببساطة التحقق.
‫تمام.
‫هل التهديد حي أم لا؟
‫وبناءً على ذلك ، يمكنك تنفيذ الأشياء وهذا مفيد جدًا.
‫لنفترض الآن أننا نريد أن نرى أن التهديد لا يزال يقوم بأشياء على أساس منتظم.
‫لنفترض أننا نستخدم حلقة for هنا وأنا يساوي صفرًا أنا أقل من عشرة أنا زائد زائد.
‫لذا ضمن حلقة for أريد تشغيل هذا الكود.
‫وما ستفعله هو أنها ستقول فقط إن التهديد لا يزال يفعل أشياء ثم
‫سينام لمدة 300 مللي ثانية ، دعنا نقول.
‫لذا نم لـ 300 ، مما يعني أنه سيكون لدينا عشر عمليات إعدام من ذلك قبل أن يكتمل تهديدنا.
‫لذلك دعونا ننفذ ذلك مرة أخرى.
‫لا يزال الخيط الأول يقوم بالأشياء المنجزة ، المنفذة ، المنجزة.
‫وكما ترون ، لم يتم تنفيذ العشر مرات على الرغم من وجود تهديد للنوم لمدة 300 أو 3000 ثانية وميلي
‫ثانية وكان هذا لمدة 300 مللي ثانية فقط.
‫إذن ما فعلته بعد ذلك هو أنها نفذت سلسلة واحدة مكتملة عدة مرات.
‫لذلك كما ترى ، هناك تداخل حيث تعود وظيفة مؤشر الترابط.
‫كما ترى ، يتم تنفيذ حلقة for هذه بعد قليل فقط.
‫لذا فإن الترتيب هو التالي.
‫نبدأ موضوع واحد.
‫نبدأ بشكل صحيح لبدء الموضوع الأول.
‫انتظرت لمدة 1/2 لذا يمكنك أن ترى أن لدينا صلة 1/2 لذا فقدنا بالفعل ثلاث عمليات تنفيذ للقسيمة
‫هنا ، مما يعني أن هذا الخيط الذي لا يزال يقوم بالأشياء قد تم تنفيذه بالفعل ست مرات هنا أو سبع مرات.
‫ثم تعود وظيفة الخيط الأول لأنها بدأت.
‫ثم انتظر 1/2.
‫لم يحدث شيء بعد ذلك.
‫عندها فقط بدأت تفعل كل هذه الأشياء الجميلة.
‫لذلك نظرًا لأن حلقة for هذه يتم تنفيذها عشر مرات ، فإنها ستعمل على تشغيل هذا السكون عدة مرات حتى تعود إلى
‫اللون.
‫ويتم تنفيذ هذا الثالث بسرعة فائقة.
‫لذلك لن ينتظر لأنه لا يوجد نوم هناك.
‫لكن هذا عمومًا ما يمكنك القيام به حيًا.
‫لذلك يمكنك التحقق بشكل عام ، هل هذه هي الحياة؟
‫هل مازال حيا؟
‫هل ما زال على قيد الحياة ويقوم بأشياء أثناء حياته أم يفعل أشياء أخرى بينما هو على قيد الحياة ثم لا يفعل شيئًا أو يفعل
‫شيئًا آخر عند القيام بذلك.
‫هذا مثال أساسي جدًا لاستخدام Join وهو حي وآمل أن تتمكن من فهم هذا المفهوم.
‫لذلك نراكم في الفيديو التالي.
‫سوف نتحقق من المهام.