الفرق بين المراجعتين لصفحة: «Ruby/Mutex/synchronize»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>synchronize</code> الخاص بالصنف <code>Mutex</code> في روبي}}</noinclude> تصنيف: Ruby تص...' |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code>synchronize | <noinclude>{{DISPLAYTITLE: التابع <code>Mutex.synchronize</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Mutex]] | [[تصنيف: Ruby Mutex]] | ||
يطبِّق التابع <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>:<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>[[Ruby/Mutex/sleep|sleep]]</code>: يحرر القفل وينام لمدة محدَّدة من الثواني. | ||
* التابع <code>[[Ruby/Mutex/try_lock|try_lock]]</code>: يحاول | * التابع <code>[[Ruby/Mutex/try_lock|try_lock]]</code>: يحاول الحصول على القفل (lock) والعودة مباشرةً. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Mutex.html#method-i-synchronize قسم | *[http://ruby-doc.org/core-2.5.1/Mutex.html#method-i-synchronize قسم التابع synchronize في الصنف Mutex في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 05:51، 20 نوفمبر 2018
يطبِّق التابع synchronize
القفل (lock) وينفذ الكتلة المعطاة، ثم يحرر القفل عند اكتمال تنفيذ الكتلة.
البنية العامة
synchronize { ... } → result of the block
القيمة المعادة
يعاد ناتج تنفيذ الكتلة المعطاة.
أمثلة
مثال على استخدام التابع synchronize
:
semaphore = Mutex.new
a = Thread.new {
semaphore.synchronize {
# access shared resource
}
}
b = Thread.new {
semaphore.synchronize {
# access shared resource
}
}
انظر أيضا
- التابع
sleep
: يحرر القفل وينام لمدة محدَّدة من الثواني. - التابع
try_lock
: يحاول الحصول على القفل (lock) والعودة مباشرةً.