الفرق بين المراجعتين لصفحة: «Ruby/Thread/thread variable get»

من موسوعة حسوب
< Ruby‏ | Thread
لا ملخص تعديل
ط مراجعة وتدقيق.
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>thread_variable_get‎</code> الخاص بالصنف <code>Thread</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>Thread.thread_variable_get‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Thread]]
[[تصنيف: Ruby Thread]]
يُعيد التابع <code>thread_variable_get</code> قيمة المتغير المحلي [[Ruby/Thread|للمهمة الفرعية]] (thread local variable) الذي تم تعيينه. لاحظ أن هذه المتغيرات تختلف عن القيم محلية [[Ruby/Fiber|الألياف]] (fiber local values). بالنسبة للقيم محلية [[Ruby/Fiber|الألياف]]، يرجى الاطلاع على المعاملين <code>[[Ruby/Thread/index operator|[]]]</code> و ‎<code>[[Ruby/Thread/index operator-3D|[]=‎]]</code>.
يُعيد التابع <code>thread_variable_get</code> قيمة المتغير المحلي [[Ruby/Thread|للمهمة الفرعية]] (thread local variable) الذي تم تعيينه. لاحظ أنَّ هذه المتغيرات تختلف عن القيم محلية [[Ruby/Fiber|الألياف]] (fiber local values). بالنسبة للقيم محلية [[Ruby/Fiber|الألياف]]، يرجى الاطلاع على المعاملين <code>[[Ruby/Thread/index operator|[]]]</code> و ‎<code>[[Ruby/Thread/index operator-3D|[]=‎]]</code>.


تُحمل القيم محلية [[Ruby/Thread|المهمة الفرعية]] مع [[Ruby/Thread|المهام الفرعية]]، وذلك على خلاف [[Ruby/Fiber|الألياف]].
تُحمل القيم محلية [[Ruby/Thread|المهمة الفرعية]] مع [[Ruby/Thread|المهام الفرعية]]، وذلك على خلاف [[Ruby/Fiber|الألياف]].
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">thread_variable_get(key)  → obj or nil‎</syntaxhighlight>
<syntaxhighlight lang="ruby">thread_variable_get(key)  → obj or nil‎</syntaxhighlight>
سطر 12: سطر 12:
[[Ruby/String|سلسلة نصية]] أو رمز.
[[Ruby/String|سلسلة نصية]] أو رمز.


==القيمة المُعادة==
==القيمة المعادة==
يُعيد التابع <code>thread_variable_get</code> قيمة المتغير المحلي [[Ruby/Thread|للمهمة الفرعية]] الذي تم تعيينه.
تعاد قيمة المتغير المحلي [[Ruby/Thread|للمهمة الفرعية]] الذي تم تعيينه.


==أمثلة==
==أمثلة==
سطر 25: سطر 25:
     ]
     ]
   }.resume
   }.resume
}.join.value # => ['bar', nil]‎</syntaxhighlight>تعاد القيمة "<code>bar</code>" للمتغير المحلي في [[Ruby/Thread|المهمة فرعية]] (thread local)، فيما تعاد <code>nil</code> للمتغير محلي [[Ruby/Fiber|الليف]] (fiber local). يتم تنفيذ [[Ruby/Fiber|الليف]] في نفس المهمة الفرعية، لذلك ستكون القيم المحلية في [[Ruby/Thread|المهمة الفرعية]] متاحة.
}.join.value # => ['bar', nil]‎</syntaxhighlight>تعاد القيمة "<code>bar</code>" للمتغير المحلي في [[Ruby/Thread|المهمة فرعية]] (thread local)، فيما تعاد القيمة <code>nil</code> للمتغير محلي [[Ruby/Fiber|الليف]] (fiber local). يتم تنفيذ [[Ruby/Fiber|الليف]] في نفس المهمة الفرعية، لذلك ستكون القيم المحلية في [[Ruby/Thread|المهمة الفرعية]] متاحة.


==انظر أيضا==
==انظر أيضًا==
*التابع <code>[[Ruby/Thread/thread variable-3F|thread_variable?‎]]</code>: يُعيد التابع <code>thread_variable?‎</code> القيمة <code>true</code> إن كانت [[Ruby/String|السلسلة النصية]] (أو الرمز) موجودة كمتغير محلى [[Ruby/Thread|المهمة الفرعية]] (thread-local variable).
*التابع <code>[[Ruby/Thread/thread variable-3F|thread_variable?‎]]</code>: يتحقق إن كانت [[Ruby/String|السلسلة النصية]] (أو الرمز) موجودة كمتغير محلى [[Ruby/Thread|المهمة الفرعية]] (thread-local variable).
*التابع <code>[[Ruby/Thread/thread variable set|thread_variable_set]]</code>: يعين التابع <code>thread_variable_set</code> المتغيرا المحلي في [[Ruby/Thread|المهمة الفرعية]] (thread local)
*التابع <code>[[Ruby/Thread/thread variable set|thread_variable_set]]</code>: يعين متغير محلي محدَّد في [[Ruby/Thread|المهمة الفرعية]] (thread local) إلى قيمة معيَّنة.
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Thread.html#method-i-thread_variable_get قسم التابع thread_variable_get‎ في الصنف Thread‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Thread.html#method-i-thread_variable_get قسم التابع thread_variable_get‎ في الصنف Thread‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 08:39، 6 ديسمبر 2018

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

انظر أيضًا

مصادر