التابع thread_variable_get‎ الخاص بالصنف Thread في روبي

من موسوعة حسوب

يُعيد التابع thread_variable_get قيمة المتغير المحلي للمهمة الفرعية (thread local variable) الذي تم تعيينه. لاحظ أن هذه المتغيرات تختلف عن القيم محلية الألياف (fiber local values). بالنسبة للقيم محلية الألياف، يرجى الاطلاع على المعاملين [] و ‎[]=‎.

تُحمل القيم محلية المهمة الفرعية مع المهام الفرعية، وذلك على خلاف الألياف.

البنية العامة

thread_variable_get(key)   obj or nil

المعاملات

key‎

سلسلة نصية أو رمز.

القيمة المُعادة

يُعيد التابع thread_variable_get قيمة المتغير المحلي للمهمة الفرعية الذي تم تعيينه.

أمثلة

مثال على استخدام التابع 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). يتم تنفيذ الليف في نفس المهمة الفرعية، لذلك ستكون القيم المحلية في المهمة الفرعية متاحة.

انظر أيضا

مصادر