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

مصادر