التابع Thread.thread_variable_get
في روبي
يُعيد التابع thread_variable_get
قيمة المتغير المحلي للمهمة الفرعية (thread local variable) الذي تم تعيينه. لاحظ أنَّ هذه المتغيرات تختلف عن القيم محلية الألياف (fiber local values). بالنسبة للقيم محلية الألياف، يرجى الاطلاع على المعاملين []
و []=
.
تُحمل القيم محلية المهمة الفرعية مع المهام الفرعية، وذلك على خلاف الألياف.
البنية العامة
thread_variable_get(key) → obj or nil
المعاملات
key
سلسلة نصية أو رمز.
القيمة المعادة
تعاد قيمة المتغير المحلي للمهمة الفرعية الذي تم تعيينه.
أمثلة
مثال على استخدام التابع thread_variable_get
:
Thread.new {
Thread.current.thread_variable_set("foo", "bar") # set a thread local
Thread.current["foo"] = "bar" # set a fiber local
Fiber.new {
Fiber.yield [
Thread.current.thread_variable_get("foo"), # get the thread local
Thread.current["foo"], # get the fiber local
]
}.resume
}.join.value # => ['bar', nil]
تعاد القيمة "bar
" للمتغير المحلي في المهمة فرعية (thread local)، فيما تعاد القيمة nil
للمتغير محلي الليف (fiber local). يتم تنفيذ الليف في نفس المهمة الفرعية، لذلك ستكون القيم المحلية في المهمة الفرعية متاحة.
انظر أيضًا
- التابع
thread_variable?
: يتحقق إن كانت السلسلة النصية (أو الرمز) موجودة كمتغير محلى المهمة الفرعية (thread-local variable). - التابع
thread_variable_set
: يعين متغير محلي محدَّد في المهمة الفرعية (thread local) إلى قيمة معيَّنة.