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

من موسوعة حسوب
< Ruby‏ | Mutex
أنشأ الصفحة ب'<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>Mutex</code>.
يحصل التابع <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> ثانية إذا تم تمريره وكانت قيمته تخالف nil أو forever.  يطلق الخطأ <code>ThreadError</code> إذا لم يتم تأمين <code>mutex</code> من قبل المهمة الفرعية (thread) الحالي.
* التابع <code>[[Ruby/Mutex/sleep|sleep]]</code>: يحرر  القفل وينام لمدة <code>timeout</code> ثانية.  
* التابع <code>[[Ruby/Mutex/try_lock|try_lock]]</code>: يحاول  الحصول على القفل (lock) والعودة على الفور. حيث يعيد <code>true</code> إذ أُمِّن القفل.
* التابع <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) والعودة على الفور

مصادر