الفرق بين المراجعتين لصفحة: «Ruby/Mutex/sleep»
أنشأ الصفحة ب'<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> ثانية إذا تم | يحرر التابع <code>sleep</code> القفل (lock)، وينام لمدة <code>timeout</code> ثانية إذا تم تمرير الوسيط <code>timeout</code> وكانت قيمته تخالف <code>nil</code> أو اللا نهائية (<code>forever)</code>. يطلق الخطأ <code>ThreadError</code> إذا لم يتم مسك الكائن<code>mutex</code> من قبل المهمة الفرعية (thread) الحالية. | ||
عندما | |||
لاحظ أنه يمكن تنبيه (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> | ===<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>[[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)، وينفذ الكتلة المعطاة، ثم يحرر القفل عند اكتمال تنفيذ الكتلة.