Logo ar.removalsclassifieds.com

الفرق بين النوم والانتظار (مع الجدول)

جدول المحتويات:

Anonim

لدى Java عدة طرق لتنفيذ إجراءات معينة. الطريقة هي مجموعة من التعليمات البرمجية ، والتي تعمل فقط عندما يتم استدعاؤها ؛ وقد تُرجع أو لا تُرجع نتيجة.

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

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

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

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

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

جدول المقارنة بين النوم والانتظار

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

ما هو النوم؟

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

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

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

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

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

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

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

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

طريقة notify () ستنشط مؤشر ترابط محدد بينما يكون notifyAll () قابلاً للتطبيق على كل سلسلة رسائل. عند المزامنة ، تتخلى طريقة الانتظار عن قفل الموارد. لا توجد قيمة مرتجعة لطريقة الانتظار ، ومن ثم يمكن القول إنها ترجع الفراغ.

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

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

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

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

استنتاج

طريقة Sleep and Wait هي طرق أصلية في Java. وكلاهما يستخدم على نطاق واسع لجعل الخيط الحالي الحالي ينتقل إلى حالة غير قابلة للتشغيل. يتم استخدام كلتا الطريقتين لتعدد مؤشرات الترابط في البرنامج.

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

إنهم يميزون عن بعضهم البعض من حيث وظائف محددة مثل الفئة والطريقة والمزامنة ومدة تعليق القفل وتحريره والعديد من المعلمات الأخرى. غالبًا ما يتم الخلط بين المبرمجين حول الطريقة التي يمكن أن تكون مثالية للنوم في الخيط. يعتمد استخدام الطرق على متطلبات مثل الحاجة والإلحاح والفترة الزمنية للخيط الحالي.

الفرق بين النوم والانتظار (مع الجدول)