الفرق بين المراجعتين لصفحة: «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) والعودة على الفور