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

من موسوعة حسوب
< Ruby‏ | Mutex
لا ملخص تعديل
ط مراجعة وتدقيق.
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>synchronize‎</code> الخاص بالصنف <code>Mutex</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>Mutex.synchronize‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: 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>  ناتج تنفيذ  الكتلة المعطاة.
يعاد ناتج تنفيذ  الكتلة المعطاة.


== أمثلة ==
== أمثلة ==
سطر 24: سطر 24:
}</syntaxhighlight>
}</syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Mutex/sleep|sleep]]</code>: يحرر القفل وينام لمدة <code>timeout</code> ثانية.  
* التابع <code>[[Ruby/Mutex/sleep|sleep]]</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‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 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) والعودة مباشرةً.

مصادر