الفرق بين المراجعتين لصفحة: «Ruby/Process/fork»

من موسوعة حسوب
< Ruby‏ | Process
إنشاء الصفحة.
 
 
سطر 15: سطر 15:
==انظر أيضًا==
==انظر أيضًا==
*التابع <code>[[Ruby/Process/exec|exec]]</code>: يستبدل العملية الحالية عبر تشغيل الأمر الخارجي المعطى.
*التابع <code>[[Ruby/Process/exec|exec]]</code>: يستبدل العملية الحالية عبر تشغيل الأمر الخارجي المعطى.
*التابع <code>[[Ruby/Process/spawn|spawn]]</code>: يُنفِّذ أمرًا محدَّدًا ثم يعيد مُعرِّف العملية الخاصة به.
==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Process.html#method-c-fork قسم التابع fork في الصنف Process في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Process.html#method-c-fork قسم التابع fork في الصنف Process في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 06:43، 6 يناير 2019

ينشئ التابع fork عملية فرعية. إن أعطيت كتلةٌ، فستُنفَّذ هذه الكتلة في العملية الفرعية ثم تُنهَى العملية الفرعية مع حالة خروج تساوي إلى الصفر. خلاف ذلك، يعيد استدعاء التابع fork قيمتين، الأولى يعيدها في العملية الأب وهي مُعرِّف العملية الأبن، والثانية في العملية الابن وهي القيمة nil. تستطيع العملية الابن الخروج باستعمال التابع !Kernel.exit لتجنب تنفيذ أي دالة خروج مرتبطة عبر التابع at_exit. يجب أن تستعمل العملية الأب التابع Process.wait لجمع حالات الإنهاء (termination statuses) لعملياتهم الأبناء أو أن تستعمل Process.detach عند عدم الاكتراث لحالاتهم. خلاف ذلك، سيُجمِّع ويراكم نظام التشغيل عمليات ميتة (zombie processes).

الخيط المستدعي للتابع fork هو الخيط الوحيد في العملية الابن المنشأة. لا ينسخ التابع fork خيوط أخرى.

إن لم يكن التابع fork قابلًا للاستعمال، فسيعيد التابع Process.respond_to?(:fork)‎ القيمة false.

انتبه إلى أن الدالة fork(2)‎ غير متاحة على بعض المنصات مثل ويندوز و NetBSD 4. نتيجةً لذلك، يجب عليك استعمال التابع spawn بدلًا من التابع fork.

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

fork [{ block }]  integer or nil
fork [{ block }]  integer or nil

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

تعاد قيمتان، الأولى في العملية الأب وهي مُعرِّف العملية الأبن، والثانية في العملية الابن وهي القيمة nil.

انظر أيضًا

  • التابع exec: يستبدل العملية الحالية عبر تشغيل الأمر الخارجي المعطى.
  • التابع spawn: يُنفِّذ أمرًا محدَّدًا ثم يعيد مُعرِّف العملية الخاصة به.

مصادر