الفرق بين المراجعتين ل"Ruby/Mutex/synchronize"
اذهب إلى التنقل
اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>synchronize</code> الخاص بالصنف <code>Mutex</code> في روبي}}</noinclude> تصنيف: Ruby تص...') |
|||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Mutex]] | [[تصنيف: Ruby Mutex]] | ||
− | يحصل التابع <code>synchronize</code> على القفل (lock)، وينفذ الكتلة المعطاة، ثم يحرر القفل عند اكتمال تنفيذ الكتلة | + | يحصل التابع <code>synchronize</code> على القفل (lock)، وينفذ الكتلة المعطاة، ثم يحرر القفل عند اكتمال تنفيذ الكتلة. |
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">synchronize { ... } → result of the block</syntaxhighlight> | <syntaxhighlight lang="ruby">synchronize { ... } → result of the block</syntaxhighlight> | ||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
+ | يعيد التابع <code>synchronize</code> ناتج تنفيذ الكتلة المعطاة. | ||
+ | == أمثلة == | ||
+ | مثال على استخدام التابع <code>synchronize</code>:<syntaxhighlight lang="ruby">semaphore = Mutex.new | ||
+ | |||
+ | a = Thread.new { | ||
+ | semaphore.synchronize { | ||
+ | # access shared resource | ||
+ | } | ||
+ | } | ||
+ | |||
+ | b = Thread.new { | ||
+ | semaphore.synchronize { | ||
+ | # access shared resource | ||
+ | } | ||
+ | }</syntaxhighlight> | ||
==انظر أيضا== | ==انظر أيضا== | ||
− | * التابع <code>[[Ruby/Mutex/sleep|sleep]]</code>: يحرر القفل وينام لمدة <code>timeout</code> ثانية | + | * التابع <code>[[Ruby/Mutex/sleep|sleep]]</code>: يحرر القفل وينام لمدة <code>timeout</code> ثانية. |
− | * التابع <code>[[Ruby/Mutex/try_lock|try_lock]]</code>: يحاول الحصول على القفل (lock) والعودة على الفور | + | * التابع <code>[[Ruby/Mutex/try_lock|try_lock]]</code>: يحاول الحصول على القفل (lock) والعودة على الفور |
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Mutex.html#method-i-synchronize قسم التابع synchronize في الصنف Mutex في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/Mutex.html#method-i-synchronize قسم التابع synchronize في الصنف Mutex في توثيق روبي الرسمي.] |
مراجعة 14:04، 27 أكتوبر 2018
يحصل التابع synchronize
على القفل (lock)، وينفذ الكتلة المعطاة، ثم يحرر القفل عند اكتمال تنفيذ الكتلة.
البنية العامة
synchronize { ... } → result of the block
القيمة المُعادة
يعيد التابع synchronize
ناتج تنفيذ الكتلة المعطاة.
أمثلة
مثال على استخدام التابع synchronize
:
semaphore = Mutex.new
a = Thread.new {
semaphore.synchronize {
# access shared resource
}
}
b = Thread.new {
semaphore.synchronize {
# access shared resource
}
}
انظر أيضا
- التابع
sleep
: يحرر القفل وينام لمدةtimeout
ثانية. - التابع
try_lock
: يحاول الحصول على القفل (lock) والعودة على الفور