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

من موسوعة حسوب
< Ruby‏ | Mutex
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>sleep‎</code> الخاص بالصنف <code>Mutex</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف...'
 
لا ملخص تعديل
سطر 3: سطر 3:
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Mutex]]
[[تصنيف: Ruby Mutex]]
يحرر التابع <code>sleep</code> القفل وينام لمدة <code>timeout</code> ثانية إذا تم تمريره وكانت قيمته تخالف nil أو forever.  يطلق الخطأ <code>ThreadError</code> إذا لم يتم تأمين <code>mutex</code> من قبل المهمة الفرعية (thread) الحالي.
يحرر التابع <code>sleep</code> القفل (lock)، وينام لمدة <code>timeout</code> ثانية إذا تم تمرير الوسيط <code>timeout</code> وكانت قيمته تخالف <code>nil</code> أو اللا نهائية (<code>forever)</code>.  يطلق الخطأ <code>ThreadError</code> إذا لم يتم مسك الكائن<code>mutex</code> من قبل المهمة الفرعية (thread) الحالية.
عندما تستأنف المهمة الفرعية، سيحاول استعادة القفل (reacquire the lock).
 
لاحظ أنه يمكن تنبيه (wakeup ) هذا التابع دون استدعاء <code>Thread#wakeup</code> بشكل صريح. على سبيل المثال، عند تلقي إشارة.
عندما تُستأنف المهمة الفرعية، ستحاول تلك المهمة استعادة القفل (reacquire the lock).
 
لاحظ أنه يمكن تنبيه (wakeup) هذا التابع دون استدعاء <code>Thread#wakeup</code> بشكل صريح. كما يحدث، على سبيل المثال، عند تلقي إشارة.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">sleep(timeout = nil) → number‎</syntaxhighlight>
<syntaxhighlight lang="ruby">sleep(timeout = nil) → number‎</syntaxhighlight>
==المعاملات==
==المعاملات==
===<code>timeout ‎</code>===
===<code>timeout‎</code>===
 


عدد الثواني.
==القيمة المُعادة==
==القيمة المُعادة==
يعيد عددا صحيحا.


==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Mutex/owned-3F|owned?]]</code>: يعيد  القيمة <code>true</code> إن كان هذا القفل ممسوكًا حاليًا من قبل المهمة الفرعية (thread) الحالية.
* التابع <code>[[Ruby/Mutex/owned-3F|owned?]]</code>: يعيد  القيمة <code>true</code> إن كان هذا القفل ممسوكًا حاليًا من قبل المهمة الفرعية (thread) الحالية.
* التابع <code>[[Ruby/Mutex/synchronize|synchronize]]</code>: يحصل  على القفل (lock)، وينفذ الكتلة المعطاة، ثم يحرر القفل عند اكتمال تنفيذ الكتلة.  انظر المثال تحت <code>Mutex</code>.
* التابع <code>[[Ruby/Mutex/synchronize|synchronize]]</code>: يحصل  على القفل (lock)، وينفذ الكتلة المعطاة، ثم يحرر القفل عند اكتمال تنفيذ الكتلة.


==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Mutex.html#method-i-sleep قسم  التابع sleep‎ في الصنف Mutex‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Mutex.html#method-i-sleep قسم  التابع sleep‎ في الصنف Mutex‎ في توثيق روبي الرسمي.]

مراجعة 14:02، 27 أكتوبر 2018

يحرر التابع sleep القفل (lock)، وينام لمدة timeout ثانية إذا تم تمرير الوسيط timeout وكانت قيمته تخالف nil أو اللا نهائية (forever). يطلق الخطأ ThreadError إذا لم يتم مسك الكائنmutex من قبل المهمة الفرعية (thread) الحالية.

عندما تُستأنف المهمة الفرعية، ستحاول تلك المهمة استعادة القفل (reacquire the lock).

لاحظ أنه يمكن تنبيه (wakeup) هذا التابع دون استدعاء Thread#wakeup بشكل صريح. كما يحدث، على سبيل المثال، عند تلقي إشارة.

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

sleep(timeout = nil)  number

المعاملات

timeout‎

عدد الثواني.

القيمة المُعادة

يعيد عددا صحيحا.

انظر أيضا

  • التابع owned?‎: يعيد القيمة true إن كان هذا القفل ممسوكًا حاليًا من قبل المهمة الفرعية (thread) الحالية.
  • التابع synchronize: يحصل على القفل (lock)، وينفذ الكتلة المعطاة، ثم يحرر القفل عند اكتمال تنفيذ الكتلة.

مصادر