THEWERPOOL أكبر أو ExecutorService عندما سيتم تشغيل نوع جديد من الخيوط؟

StackOverflow https://stackoverflow.com/questions/2825717

سؤال

لدي سؤال مرتبط باحتمال النفقات العامة ExecutorServiceS في جافا.

التنفيذ الحالي ExecutorService A بسعة 5 خيوط.

  • يقوم بتشغيل المواضيع من النوع A.
  • يكتب A المواضيع تفعل بعض قراءة قاعدة البيانات والكتابة.

الآن ، موضوع من النوع B سوف يركض بعد بعض المواضيع من النوع A انتهى.

  • عدد النوع B الخيوط التي سيتم تشغيلها تختلف من وقت لآخر.
  • يكتب B المواضيع تقوم ببعض نظام الملفات IO (وليس قاعدة البيانات).

لذلك يجب علي

  • أضف جديدًا ExecutorService للتعامل مع النوع B الخيوط
  • أو يجب أن أزيد من قدرة ExecutorService A وتشغيل نوع B المواضيع مع ذلك أيضًا؟

أعتقد أنه قد يكون هناك بعض النفقات العامة الإضافية لجافا ليكون اثنين ExecutorServiceS ، ولكن من ناحية أخرى ، سيزيد العدد الإجمالي للمواضيع في كلتا الحالتين. هل يهم عموما؟

هل كانت مفيدة؟

المحلول

سأوصي اثنين ExecutorServices, ، ثم يمكنك الاستفادة من مختلف ExecutorServiceS المقدمة من قبل java.util.concurrent صفقة.

يجعل الكود أسهل وتجاهل النفقات العامة.

  • ExecutorService A مع تجمع الخيوط الثابتة لضبط خمسة مؤشرات ترابط.
  • ExecutorService ب مع تجمع الخيوط المخبأة.

نصائح أخرى

إذا كنت تتحدث عن 5 خيوط ، ولم تكن تستنفد سعة تجمع الخيوط الخاصة بك ، فسوف أميل إلى القول إن Woulld النفقات العامة لا تهم في كلتا الحالتين ، ويجب أن تذهب فقط ما تراه هو أبسط مسار.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top