THEWERPOOL أكبر أو ExecutorService عندما سيتم تشغيل نوع جديد من الخيوط؟
-
26-09-2019 - |
سؤال
لدي سؤال مرتبط باحتمال النفقات العامة ExecutorService
S في جافا.
التنفيذ الحالي ExecutorService A
بسعة 5 خيوط.
- يقوم بتشغيل المواضيع من النوع
A
. - يكتب
A
المواضيع تفعل بعض قراءة قاعدة البيانات والكتابة.
الآن ، موضوع من النوع B
سوف يركض بعد بعض المواضيع من النوع A
انتهى.
- عدد النوع
B
الخيوط التي سيتم تشغيلها تختلف من وقت لآخر. - يكتب
B
المواضيع تقوم ببعض نظام الملفات IO (وليس قاعدة البيانات).
لذلك يجب علي
- أضف جديدًا
ExecutorService
للتعامل مع النوعB
الخيوط - أو يجب أن أزيد من قدرة
ExecutorService A
وتشغيل نوعB
المواضيع مع ذلك أيضًا؟
أعتقد أنه قد يكون هناك بعض النفقات العامة الإضافية لجافا ليكون اثنين ExecutorService
S ، ولكن من ناحية أخرى ، سيزيد العدد الإجمالي للمواضيع في كلتا الحالتين. هل يهم عموما؟
المحلول
سأوصي اثنين ExecutorServices
, ، ثم يمكنك الاستفادة من مختلف ExecutorService
S المقدمة من قبل java.util.concurrent
صفقة.
يجعل الكود أسهل وتجاهل النفقات العامة.
ExecutorService
A مع تجمع الخيوط الثابتة لضبط خمسة مؤشرات ترابط.ExecutorService
ب مع تجمع الخيوط المخبأة.
نصائح أخرى
إذا كنت تتحدث عن 5 خيوط ، ولم تكن تستنفد سعة تجمع الخيوط الخاصة بك ، فسوف أميل إلى القول إن Woulld النفقات العامة لا تهم في كلتا الحالتين ، ويجب أن تذهب فقط ما تراه هو أبسط مسار.
لا تنتمي إلى StackOverflow