الفرق بين المراجعتين لصفحة: «Ruby/ConditionVariable»
< Ruby
لا ملخص تعديل |
لا ملخص تعديل |
||
سطر 26: | سطر 26: | ||
==توابع الصنف العامة (Public Class Methods)== | ==توابع الصنف العامة (Public Class Methods)== | ||
===[[Ruby/ | ===[[Ruby/ConditionVariable/new|التابع <code>new</code>]]=== | ||
ينشئ التابع <code>new</code> نسخة جديدة من الصنف <code>ConditionVarialbe</code>. | |||
== | == توابع الكائن العامة (Public Instance Methods) == | ||
===[[Ruby/ | ===[[Ruby/ConditionVariable/broadcast|التابع <code>broadcast</code>]]=== | ||
يوقظ التابع <code>broadcast</code> جميع المهام الفرعية (threads) التي تنتظر القفل (lock) المعيّن. | |||
===[[Ruby/ConditionVariable/signal|التابع <code>signal </code>]]=== | |||
يوقظ التابع <code>signal</code> أول مهمة فرعية من بين المهام الفرعية (threads) التي تنتظر القفل (lock) المعيّن. | |||
===[[Ruby/ConditionVariable/wait|التابع <code>wait</code>]] === | |||
يحرر التابع <code>wait</code> القفل الممسوك في الكائن <code>mutex</code> ثم ينتظر، ثم يستعيد (reacquires) القفل عند الإستيقاظ. | |||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/ | *[http://ruby-doc.org/core-2.5.1/ConditionVariable.html قسم الصنف ConditionVariable في توثيق روبي الرسمي.] |
مراجعة 09:20، 15 سبتمبر 2018
ترفع كائنات الصنفِ ConditionVariable
الصنفَ Mutex
. فباستخدام المتغيرات الشرطية، من الممكن إيقاف مهمة حرجة (critical section) في أثناء تنفيذها إلى حين إتاحة مورد ما.
إليك الأمثلة التالية:
mutex = Mutex.new
resource = ConditionVariable.new
a = Thread.new {
mutex.synchronize {
# Thread 'a' now needs the resource
resource.wait(mutex)
# 'a' can now have the resource
}
}
b = Thread.new {
mutex.synchronize {
# Thread 'b' has finished using the resource
resource.signal
}
}
توابع الصنف العامة (Public Class Methods)
التابع new
ينشئ التابع new
نسخة جديدة من الصنف ConditionVarialbe
.
توابع الكائن العامة (Public Instance Methods)
التابع broadcast
يوقظ التابع broadcast
جميع المهام الفرعية (threads) التي تنتظر القفل (lock) المعيّن.
التابع signal
يوقظ التابع signal
أول مهمة فرعية من بين المهام الفرعية (threads) التي تنتظر القفل (lock) المعيّن.
التابع wait
يحرر التابع wait
القفل الممسوك في الكائن mutex
ثم ينتظر، ثم يستعيد (reacquires) القفل عند الإستيقاظ.