"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية مشاركة قائمة انتظار النتائج بين عمليات متعددة باستخدام multiprocessing.Manager؟

كيفية مشاركة قائمة انتظار النتائج بين عمليات متعددة باستخدام multiprocessing.Manager؟

تم النشر بتاريخ 2024-11-08
تصفح:678

How to Share a Result Queue Between Multiple Processes Using multiprocessing.Manager?

مشاركة قائمة انتظار النتائج بين عدة عمليات باستخدام المعالجة المتعددة. مدير

في المعالجة المتعددة، تعد مشاركة قائمة الانتظار بين العمليات الأصلية والتابعة أمرًا ضروريًا للتواصل واسترجاع النتائج. ومع ذلك، فإن استخدام application_async لبدء العمليات المنفذة غير المتزامنة يمثل تحديات في مشاركة قوائم الانتظار.

للتغلب على الخطأ "يجب مشاركة كائنات قائمة الانتظار فقط بين العمليات من خلال الميراث"، يمكننا استخدام multiprocessing.Manager. تمكن فئة المدير هذه من إنشاء وإدارة الموارد المشتركة، بما في ذلك قوائم الانتظار.

من خلال تضمين عملية إنشاء قائمة الانتظار الخاصة بنا في سياق المعالجة المتعددة.Manager()، يمكننا جعلها في متناول جميع العاملين. هذه هي كيفية تعديل الكود:

if __name__ == '__main__':
    pool = multiprocessing.Pool(processes=3)
    m = multiprocessing.Manager()
    q = m.Queue()
    workers = pool.apply_async(worker, (33, q))

الآن، يمكن لكل عامل التفاعل مع كائن q المشترك وإبلاغ النتائج إلى العملية الأساسية. يسمح هذا الأسلوب بتوصيل النتائج بكفاءة وموثوقية مع الحفاظ على الطبيعة غير المتزامنة لـ application_async.

بيان الافراج أعيد طبع هذه المقالة على: 1729334537 في حالة وجود أي مخالفة، يرجى التواصل مع [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3