التابع join الخاص بالصنف Thread في روبي
عند استدعاء التابع 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إن كانت السلسلة النصية أو الرمز المعطى (انظر فقرة البنية العامة) موجودة على هيئة متغير محلي الليف.