النوم مقابل الانتظار: الفرق والمقارنة

لدى Java عدة طرق لتنفيذ إجراءات معينة.

الطريقة هي مجموعة من التعليمات البرمجية التي تعمل فقط عندما يتم استدعاؤها ؛ وقد تُرجع أو لا تُرجع نتيجة.

طرق مثل النوم وانتظر تستخدم لتعدد مؤشرات الترابط. كلاهما يتوقف ويرسل الخيط إلى الانتظار ولكن هناك اختلافات كبيرة في الأداء.

الوجبات السريعة الرئيسية

  1. "النوم" هي حالة من الراحة يكون فيها الجسم والعقل غير نشطين ، بينما "انتظر" يبقى في مكان واحد أو يؤخر العمل حتى يقع حدث معين.
  2. "النوم" وظيفة جسدية طبيعية وضرورية ، بينما "الانتظار" عمل تطوعي يمكن اختياره أو تجنبه.
  3. يرتبط "النوم" بالليل، بينما يمكن أن يحدث "الانتظار" في أي وقت من اليوم.

النوم مقابل الانتظار

الفرق بين طريقة النوم () والانتظار () هو أن طريقة النوم () تُستخدم في البرنامج لإيقاف تنفيذ الخيط الحالي مؤقتًا لفترة زمنية معينة بينما يتم استخدام طريقة الانتظار () في البرنامج للإيقاف المؤقت أو تعليق الخيط الحالي حتى يتم استدعاء أساليب محددة.

النوم مقابل الانتظار

أثناء استخدام طريقة السكون ، لا يفقد مؤشر الترابط الحالي ملكية الشاشة.

النوم هو طريقة ثابتة وهو جزء من سلسلة الرسائل. بعد انتهاء وقت الانتظار ، يعود مؤشر الترابط إلى حالة التشغيل الأصلية.

يضمن الاستخدام الكامل لوحدة المعالجة المركزية أثناء الانتظار.

بينما يتم استخدام طريقة الانتظار () في ملف جافا برنامج لطلب مؤشر الترابط الحالي للانتظار حتى لا يتم استدعاء مؤشر ترابط آخر لهذا الكائن.

ثم يستمر الخيط في التنفيذ بمجرد أن يسيطر على الشاشة.

إنها ليست طريقة ثابتة ، على عكس النوم ، وهي جزء من فئة كائن.

جدول المقارنة

معلمات المقارنةالنوم
مبوبةطريقة النوم جزء من فئة الخيط طريقة الانتظار هي جزء من فئة الكائن
نوع الطريقةالنوم طريقة ثابتةالانتظار ليس طريقة ثابتة
تقنية الاتصاليمكن استدعاء طريقة السكون من خارج السياق المتزامنيمكن استدعاء طريقة الانتظار فقط من السياق المتزامن
الافراج عن القفللا تحرر طريقة السكون القفل على الكائن ، للمهلة المحددة ، أثناء المزامنةتحرر طريقة الانتظار القفل على الكائن ، للحصول على فرصة للتنفيذ ، أثناء المزامنة
إعلانالنوم الفراغ العام الثابت () انتظار الفراغ النهائي العام ()

ما هو النوم؟

السكون الموضوع () هو طريقة ثابتة في برنامج Java تقوم بتعليق الخيط الحالي وتضعه في حالة انتظار لفترة زمنية محددة.

اقرأ أيضا:  التصيد بالرمح مقابل صيد الحيتان: الفرق والمقارنة

بمجرد انتهاء حالة الانتظار والوقت ، يتم تغيير حالة مؤشر الترابط إلى حالة قابلة للتشغيل. ثم ينتظر وحدة المعالجة المركزية لمزيد من التنفيذ.

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

إذا كان النظام مشغولاً أو محملاً بشكل زائد ، فإن وقت الانتظار أو التوقف المؤقت يكون أكثر ، وبخلاف ذلك ، سيكون أقل أو يساوي الوقت الفعلي.

يمكن القول أن نوع الإرجاع لطريقة النوم باطل ، لأنه لا يُرجع أي قيمة.

لا يفقد مؤشر السكون الشاشة أو يقفل الخيط الذي حصل عليه بالفعل.

إذا كان السكون مضطربًا ، على أي حال ، فسيؤدي الخيط إلى Interrupt_Exception.

الفعلية مدة الأقامة يعتمد وضع السكون الذي سيستغرقه مؤشر الترابط على المجدولين وأجهزة ضبط الوقت الخاصة بالنظام والتي تعد جزءًا من نظام التشغيل.

صيغة طريقة النوم هي - نوم الفراغ العام الثابت (ميلي ثانية طويلة)

نوم الفراغ العام الثابت (ميلي ثانية طويلة ، نانوثانية ثانية)

هنا ميلي ثانية و نانوثانية هي الوقت الذي سينام فيه الخيط.

النوم

ما هو الانتظار؟

Wait () هي طريقة تستخدم للاتصال بين مؤشرات الترابط.

عندما يتم استخدام مؤشر ترابط الانتظار () ، يتم إيقاف الاستدعاء أو الخيط الحالي مؤقتًا وتعليقه حتى يتم استدعاء طرق مثل notify () أو notifyAll () في النظام.

طريقة notify () سوف تستيقظ سلاسل محددة بينما notifyAll () قابلة للتطبيق على كل موضوع.

عند المزامنة ، تتخلى طريقة الانتظار عن قفل الموارد.

لا توجد قيمة مرتجعة لطريقة الانتظار ، وبالتالي يمكن القول إنها ترجع الفراغ.

اقرأ أيضا:  SmartThings vs Home Assistant: الفرق والمقارنة

الاستثناءان اللذان لطريقة الانتظار هما Interrupt_Exception (عند مقاطعة مؤشر الترابط الحالي أثناء سكونه) و IllegalMonitorStateException (عندما لا يكون مؤشر الترابط الحالي هو مالك الكائن الموجود على الشاشة).

طريقة الانتظار هي جزء من فئة الكائن. الطريقة قابلة للتطبيق فقط ويمكن استدعاؤها عبر كتلة متزامنة.

تعمل طريقة الانتظار على تعيين الشاشة المعلقة أو المقفلة مجانًا أثناء المزامنة.

وتسمح طريقة الانتظار حصريًا للخيوط المتعددة المتزامنة بالوصول إلى نفس الكائن واحدًا تلو الآخر.

صيغة طريقة الانتظار هي - انتظار الفراغ النهائي العام ()

انتظر

الاختلافات الرئيسية بين النوم والانتظار

  1. تؤدي طريقة السكون إلى سكون الخيط لفترة زمنية محددة ومحددة، لمهلة محددة ما لم تنته صلاحيتها أو انقطاعها، بينما تتسبب طريقة الانتظار في سكون الخيط حتى يتم استدعاء طرق مثل notify() أو notifyAll().
  2. يتم تنفيذ أسلوب السكون على مؤشر ترابط ، بينما يتم تنفيذ أسلوب الانتظار على كائن.
  3. يتم استخدام طريقة السكون لمزامنة الوقت ، بينما يتم استخدام طريقة الانتظار لمزامنة مؤشرات الترابط المتعددة.
  4. أثناء مؤشر ترابط الانتظار ، يمكن للخيوط المتعددة المتزامنة الوصول إلى نفس الكائن بشكل متقارب ، بينما في مؤشر ترابط السكون ، يجب أن تنتظر خيوط متعددة متزامنة حتى ينتهي سكون مؤشر الترابط الحالي.
  5. تعمل طريقة الانتظار على تعيين القفل أو الشاشة مجانًا ، بينما لا تعمل طريقة السكون على تعيين الشاشة مجانًا أثناء السكون أو انتظار الخيط الحالي.
الفرق بين X و Y 2023 05 10T161359.507
مراجع حسابات
  1. https://pdfs.semanticscholar.org/51fd/24ae444910fd39b117bb3044a12591f038fa.pdf
  2. https://dl.acm.org/doi/pdf/10.1145/289524.289572

آخر تحديث: 31 يوليو 2023

النقطة 1
طلب واحد؟

لقد بذلت الكثير من الجهد في كتابة منشور المدونة هذا لتقديم قيمة لك. سيكون مفيدًا جدًا بالنسبة لي ، إذا كنت تفكر في مشاركته على وسائل التواصل الاجتماعي أو مع أصدقائك / عائلتك. المشاركة هي ♥ ️

18 فكرة عن "النوم مقابل الانتظار: الفرق والمقارنة"

  1. توضح المقالة بشكل فعال الفروق بين طريقتي النوم والانتظار، مما يوفر مقارنة واضحة وموجزة. تعتبر تفاصيل المزامنة وتحرير القفل مفيدة بشكل خاص.

    رد
    • تقوم المقالة بعمل ممتاز في تحديد الاختلافات بين طريقتي النوم والانتظار. يتم تقديم المعلومات حول المزامنة وتحرير القفل بوضوح ودقة.

      رد
  2. الشرح التفصيلي لطرق النوم والانتظار ممتاز. تعتبر هذه المقالة مصدرًا قيمًا لأي شخص يسعى إلى تعزيز فهمه لمفاهيم Java الأساسية هذه.

    رد
  3. هذه مقارنة شاملة لطرق النوم والانتظار في Java. توضح المقالة بوضوح الاختلافات الرئيسية وتوفر جدول مقارنة مفيدًا كمرجع.

    رد
    • يعد التفصيل التفصيلي لأساليب النوم والانتظار ثاقبًا للغاية. من المهم فهم الفروق الدقيقة ووظائف هذه الأساليب في برمجة Java.

      رد
    • لقد وجدت أن شرح طرق النوم والانتظار غني بالمعلومات ودقيق. يعد جدول المقارنة مفيدًا بشكل خاص في تلخيص الميزات المتناقضة لهذه الطرق.

      رد
  4. تقدم المقالة مقارنة شاملة بين طريقتي النوم والانتظار في Java. وأنا أقدر التفسيرات التفصيلية، التي تقدم رؤى قيمة حول وظائفها.

    رد
    • لقد وجدت أن المقال غني بالمعلومات ومصمم بشكل جيد. تساعد تفسيرات أساليب النوم والانتظار على فهم أفضل لاستخدامها وآثارها في Java.

      رد
  5. تقدم المقالة مقارنة تفصيلية لطرق النوم والانتظار، مما يوفر رؤى شاملة حول سلوكياتها ووظائفها ضمن برمجة Java.

    رد
  6. تعد هذه المقالة مصدرًا قيمًا لفهم أساليب النوم والانتظار في Java. التفسيرات مفصلة، ​​ويوفر جدول المقارنة مرجعًا مناسبًا لفهم الاختلافات بين هذه الطرق.

    رد
    • أشاركك نفس الشعور يا فمورجان. يوفر جدول المقارنة نظرة عامة واضحة على الاختلافات، كما تعمل الأوصاف التفصيلية على تحسين فهم طرق النوم والانتظار.

      رد
  7. شكرا لك على المقال. أقدر الشرح التفصيلي للاختلافات بين طريقتي النوم والانتظار. من الجيد أن يكون لديك فهم واضح لكيفية عملها في برنامج Java.

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

      رد
  8. تم شرح التمييز بين طريقتي النوم والانتظار بشكل شامل في هذه المقالة. لقد وجدت أن تفسير سلوك طريقة الانتظار أثناء المزامنة مفيد بشكل خاص.

    رد
    • أنا أوافق، فريا. توفر المقالة شرحًا واضحًا ودقيقًا لسلوك طريقة الانتظار، مما يسهل فهم وظائفها في Java.

      رد
    • يعد وصف المقالة للسلوكيات وأنواع الإرجاع الخاصة بأساليب النوم والانتظار مفيدًا للغاية. يعد فهم هذه الاختلافات أمرًا ضروريًا لتعدد مؤشرات الترابط الفعالة في Java.

      رد
  9. لقد وجدت المادة لتكون غنية بالمعلومات والثاقبة. يساهم التحليل المتعمق لأساليب النوم والانتظار بشكل كبير في فهم الفروق الدقيقة وآثارها في Java.

    رد
  10. توفر المقالة تحليلاً شاملاً لأساليب النوم والانتظار في Java. التفسيرات منظمة بشكل جيد وتساهم بشكل كبير في فهم أعمق لهذه الأساليب الأساسية.

    رد

اترك تعليق

هل تريد حفظ هذه المقالة لوقت لاحق؟ انقر فوق القلب الموجود في الزاوية اليمنى السفلية للحفظ في مربع المقالات الخاصة بك!