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

من موسوعة حسوب
< Ruby‏ | Thread
مراجعة 11:01، 6 نوفمبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>join‎</code> الخاص بالصنف <code>Thread</code> في روبي}}</noinclude> تصنيف: Ruby تصنيف...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

عند استدعاء التابع join، فسيتوقف تنفيذ المهمة الفرعية المُستدعية (calling thread)، وسيقوم بتنفيذ المهمة الفرعية التي استُدعي معها thr.

ولن يعود حتى يخرج thr، أو حتى تمر limit ثانية (انظر فقرة البنية العامة).

في حالة انتهاء المهلة الزمنية، سيُعاد nil، خلا ذلك، سيُعاد thr.

سيتم إنهاء كل المهمة الفرعية غير المضمومة (joined) عندما يخرج البرنامج الرئيسي.

إن أطلق المهمة الفرعية سابقا استثناء thr، ولم يتم تعيين الرايتين ::abort_on_exception أو ‎$DEBUG (أي أنه لم تتم معالجة الاستثناء بعد) ، فستتم معالجته في هذا الوقت.


يوضح المثال التالي الوسيط limit.


هذا سوف ينتج:

tick...
Waiting
tick...
Waiting
tick...
tick...

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

join  thr
join(limit) thr

المعاملات

limit‎

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

أمثلة

مثال على استخدام التابع join‎:

a = Thread.new { print "a"; sleep(10); print "b"; print "c" }
x = Thread.new { print "x"; Thread.pass; print "y"; print "z" }
x.join # Let thread x finish, thread a will be killed on exit.
#=> "axyz"‎

انظر أيضا

  • التابع inspect:
  • التابع key?‎: يُعيد التابع key?‎ القيمة true إن كانت السلسلة النصية أو الرمز المعطى (انظر فقرة البنية العامة) موجودة على هيئة متغير محلي الليف.

مصادر