الفرق بين المراجعتين ل"Ruby/ConditionVariable/wait"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:  التابع <code>wait</code> الخاص بالصنف <code>ConditionVariable</code> في روبي}}</noinclude> تصنيف: Ruby ...')
 
ط (مراجعة وتدقيق)
 
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:  التابع <code>wait</code> الخاص بالصنف <code>ConditionVariable</code> في روبي}}</noinclude>
+
<noinclude>{{DISPLAYTITLE:  التابع <code>ConditionVariable.wait</code> في روبي}}</noinclude>
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby Method]]
 
[[تصنيف: Ruby ConditionVarialbe]]
 
[[تصنيف: Ruby ConditionVarialbe]]
ينشئ التابع ‎<code>new</code> نسخة جديدة من الصنف <code>ConditionVarialbe</code>.  
+
يحرِّر التابع ‎<code>wait</code> القفل المطبَّق (held) على الكائن <code>mutex</code> وينتظر، ثمَّ يستعيد القفل عند الإستيقاظ.
 +
 
 +
في حال تمرير الوسيط <code>timeout</code> (انظُر فقرة البنية العامة)، يُعيِد هذا التابع بعد مرور <code>timeout</code> ثانية، حتى في حال عدم الإشارة (signal) من خيط آخر (thread).  
  
 
== البنية العامة ==
 
== البنية العامة ==
 
<syntaxhighlight lang="ruby">
 
<syntaxhighlight lang="ruby">
new()
+
wait(mutex, timeout=nil)
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== القيمة المٌعادة ==
+
== المعاملات ==
يعيد التابع ‎<code>new</code> نسخة جديدة من الصنف <code>ConditionVarialbe</code>.
+
 
 +
=== <code>mutex</code> ===
 +
كائنٌ من النوع <code>[[Ruby/Mutex|Mutex]]</code>.
 +
 
 +
=== <code>timeout</code> ===
 +
يمثل عدد الثواني التي يجب أن ينتظرها التابع قبل الإعادة، قيمته الإفتراضية هي: <code>nil</code>.
  
== أمثلة ==
+
== انظر أيضًا ==
أمثلة عن استخدام التابع ‎<code>new</code>:<syntaxhighlight lang="ruby">
+
* التابع <code>[[Ruby/ConditionVariable/signal|signal]]</code>: يوقظ أول مهمة فرعية من بين المهام الفرعية (threads) التي تنتظر القفل (lock) المعيّن. 
mutex = Mutex.new  # => ConditionVarialbe سيعيد كائنا من الصنف
 
</syntaxhighlight>
 
  
== أنظر أيضًا ==
+
* التابع <code>[[Ruby/ConditionVariable/broadcast|broadcast]]</code>: يوقظ جميع المهام الفرعية (threads) التي تنتظر القفل (lock) المعيّن. 
* صفحة الصنف <code>[[Ruby/ConditionVariable|ConditionVariable]]</code>.
 
  
 
== مصادر ==
 
== مصادر ==
* [http://ruby-doc.org/core-2.5.1/ConditionVariable.html#method-c-new قسم التابع new‎ في الصنف ConditionVariable في توثيق روبي الرسمي.]
+
* [http://ruby-doc.org/core-2.5.1/ConditionVariable.html#method-i-wait قسم التابع wait‎ في الصنف ConditionVariable في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 20:46، 10 نوفمبر 2018

يحرِّر التابع ‎wait القفل المطبَّق (held) على الكائن mutex وينتظر، ثمَّ يستعيد القفل عند الإستيقاظ.

في حال تمرير الوسيط timeout (انظُر فقرة البنية العامة)، يُعيِد هذا التابع بعد مرور timeout ثانية، حتى في حال عدم الإشارة (signal) من خيط آخر (thread).

البنية العامة

wait(mutex, timeout=nil)

المعاملات

mutex

كائنٌ من النوع Mutex.

timeout

يمثل عدد الثواني التي يجب أن ينتظرها التابع قبل الإعادة، قيمته الإفتراضية هي: nil.

انظر أيضًا

  • التابع signal: يوقظ أول مهمة فرعية من بين المهام الفرعية (threads) التي تنتظر القفل (lock) المعيّن. 
  • التابع broadcast: يوقظ جميع المهام الفرعية (threads) التي تنتظر القفل (lock) المعيّن. 

مصادر