في بعض الحالات ، نحتاج إلى تعيين تجمعات مؤشرات ترابط مختلفة لتنفيذ مهام متعددة في المشروع. لذلك ، يتم التحكم في مهام مختلفة عن طريق مراقبة تجمعات الخيوط المختلفة. لتحقيق ذلك ، يلزم تكوين تجمع متعدد الخيوط في المشروع.
يوفر SPRING BOOT تكوين تجمع مؤشرات ترابط بسيط وفعال وحلول الاستخدام.
إعدادات
أولاً ، قم بتكوين حبوب تجمع الخيوط ليتم تسليمها إلى إدارة الربيع:
ConfigurationPublic class taskexecutepool { @bean (name = "threadpoola") public pooltaskexecutormytaskasyncpool () {threadpooltaskexecutor executor = new threadpooltaskexecutor () ؛ Executor.SetCorePoolSize (4) ؛ Executor.SetMaxPoolsize (8) ؛ Executor.SetqueUeCapacity (100) ؛ Executor.SetKeepaliveseconds (60) ؛ Executor.SetThReadNamePrefix ("pool-a") ؛ Executor.SetRejectedExecutionHandler (New ThreadPoolExecutor.CallerRunspolicy ()) ؛ Executor.Initialize () ؛ إرجاع المنفذ ؛ } bean (name = "threadpoolb") public threadpooltaskexecutorasyncpoolb () {threadpooltaskexecutor executor = new threadpooltaskexecutor () ؛ Executor.SetCorePoolSize (2) ؛ Executor.setMaxPoolsize (4) ؛ Executor.SetQueUeCapacity (8) ؛ Executor.SetKeepaliveseconds (60) ؛ Executor.SetThReadNamePrefix ("pool-b") ؛ // السياسة المستخدمة عندما يتجاوز عدد المهام maxpoolsize و QueUeCapacity. هذه السياسة هي استدعاء مؤشر ترابط المهمة لتنفيذ Executor.SetRejectedExecutionHandler (New ThreadPoolExecutor.callerrunspolicy ()) ؛ Executor.Initialize () ؛ إرجاع المنفذ ؛ }} يستخدم
يتطلب استخدام مؤشرات الترابط التعليق التوضيحي فقط على طريقة التنفيذ ، ويجب تعريف فئة الطريقة على أنها حبة وتقديمها إلى الربيع لإدارتها.
يمكنك استخدام التعليقات التوضيحية @component ، service ، وما إلى ذلك على الفصل
async (value = "threadpoola") public void taska () {...} تحقق من عدد المواضيع النشطة:
Autowired private threadpooltaskexecutor threadpoola ؛ // الاسم المتغير هو اسم اسم حبة البركة المحددة. public checkavtivethreadnum () {int num = threadpoola.getActivEcount () ؛}بالطبع هناك طرق أخرى ، لذلك لن أعطي أي أمثلة هنا.
فهم كل سمة من تجمع الخيوط:
CorePoolsize: يمثل مؤشر ترابط تجمع الخيوط ، وعدد مؤشرات الترابط المفتوحة في الظروف العادية.
QueUeCapacity: عندما تقوم الخيوط الأساسية بتشغيل المهام ، لا تزال هناك مهام إضافية سيتم حفظها هنا.
MaxPoolsize: إذا كانت QueUeCapacity ممتلئة ، فسيتم بدء المزيد من المواضيع حتى يصل عدد مؤشرات الترابط إلى maxpoolsize. إذا كانت هناك مهام ، فسيتم معالجتها وفقًا لسياسة الرفض.
هناك العديد من استراتيجيات الرفض:
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.