هل الموازي ForEach غير متزامن؟
هل الموازي ForEach غير متزامن؟

فيديو: هل الموازي ForEach غير متزامن؟

فيديو: هل الموازي ForEach غير متزامن؟
فيديو: Is Parallel.For/ForEach in C# actually worth it? (and how to modernize it) 2024, أبريل
Anonim

الفكرة كلها وراء موازي . للجميع () هو أن لديك مجموعة من الخيوط وأن كل خيط يقوم بمعالجة جزء من المجموعة. كما لاحظت ، هذا لا يعمل مع غير متزامن - انتظر ، حيث تريد تحرير الموضوع طوال مدة غير متزامن مكالمة. للجميع () ، الذي يدعم غير متزامن المهمة جيدة.

فيما يتعلق بهذا ، كيف تنتظر اكتمال foreach الموازي؟

ليس عليك القيام بأي شيء خاص ، موازي . Foreach () إرادة انتظر حتى تصبح جميع مهامها المتفرعة مكتمل . من خيط الاستدعاء ، يمكنك التعامل معه على أنه عبارة متزامنة واحدة وعلى سبيل المثال لفه داخل تجربة / التقاط. لا تحتاج ذلك مع موازي.

وبالمثل ، هل foreach غير متزامن؟ ليس غير متزامن . إنه يحجب. أولئك الذين تعلموا لغة مثل Java أو C أو Python لأول مرة قبل أن يجربوا JS سيشعرون بالارتباك عندما يحاولون وضع تأخير تعسفي أو استدعاء API في جسم الحلقة.

بجانب هذا ، كيف تستمر في البحث الموازي؟

عندما قمت بتحويل الحلقة الخاصة بك إلى تعريف متوافق لملف موازي . Foreach المنطق ، انتهى بك الأمر إلى جعل جسد البيان لامدا. حسنًا ، هذا إجراء يتم استدعاؤه بواسطة موازي وظيفة. لذا ، استبدل استمر مع return ، وكسر بعبارات Stop () أو Break ().

هل المهمة متوازنة؟

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

موصى به: