الفرق بين المراجعتين لصفحة: «Ruby/ConditionVariable/wait»

من موسوعة حسوب
لا ملخص تعديل
ط مراجعة وتدقيق
 
سطر 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>wait</code> القفل الممسوك (held) في الكائن <code>mutex</code>  وينتظر، ثم يستعيد (reacquires)  القفل عند الإستيقاظ.  
يحرِّر التابع ‎<code>wait</code> القفل المطبَّق (held) على الكائن <code>mutex</code> وينتظر، ثمَّ يستعيد القفل عند الإستيقاظ.  


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


== البنية العامة ==
== البنية العامة ==
سطر 15: سطر 15:


=== <code>mutex</code> ===
=== <code>mutex</code> ===
كائن من النوع <code>[[Ruby/Mutex|Mutex]]</code> .
كائنٌ من النوع <code>[[Ruby/Mutex|Mutex]]</code>.


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


== أنظر أيضًا ==
== انظر أيضًا ==
* صفحة الصنف <code>[[Ruby/ConditionVariable|ConditionVariable]]</code>.
* التابع <code>[[Ruby/ConditionVariable/signal|signal]]</code>: يوقظ أول مهمة فرعية من بين المهام الفرعية (threads) التي تنتظر القفل (lock) المعيّن. 


* التابع <code>[[Ruby/ConditionVariable/signal|signal]]</code>: يوقظ التابع ‎<code>signal</code> أول مهمة فرعية من بين المهام الفرعية (threads) التي تنتظر القفل (lock) المعيّن. 
* التابع <code>[[Ruby/ConditionVariable/broadcast|broadcast]]</code>: يوقظ جميع المهام الفرعية (threads) التي تنتظر القفل (lock) المعيّن. 
 
* التابع <code>[[Ruby/ConditionVariable/broadcast|broadcast]]</code>: يوقظ التابع ‎<code>broadcast</code> جميع المهام الفرعية (threads) التي تنتظر القفل (lock) المعيّن. 


== مصادر ==
== مصادر ==
* [http://ruby-doc.org/core-2.5.1/ConditionVariable.html#method-i-wait قسم التابع wait‎ في الصنف 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) المعيّن. 

مصادر