प्रौद्योगिकी साझेदारी

थ्रेड् पूल अवगमनं तथा ७ पैरामीटर्स्

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

अवगमनं परिभाषयतु

थ्रेड् पूल् वस्तुतः पूलिंग् प्रौद्योगिक्याः कार्यान्वयनम् अस्ति । सूत्रकुण्डः सूत्राणां समूहं प्रबन्धयितुं शक्नोति यत् कार्यं सम्पन्नं कृत्वा सूत्राणि न नष्टानि भविष्यन्ति, परन्तु अन्यैः सूत्रैः प्रदत्तानि कार्याणि निरन्तरं संसाधितानि भविष्यन्ति

थ्रेड् पूल् इत्यस्य उपयोगस्य लाभाः

  • संसाधनस्य उपभोगं न्यूनीकरोतु। निर्मितसूत्राणां पुनः उपयोगेन सूत्रनिर्माणस्य विनाशस्य च व्ययस्य न्यूनीकरणं कुर्वन्तु ।
  • प्रतिक्रियावेगं सुधारयन्तु। यदा कार्यं आगच्छति तदा सूत्रस्य निर्माणं न प्रतीक्ष्य तत्क्षणमेव कार्यं निष्पादयितुं शक्यते ।
  • सूत्रप्रबन्धनक्षमतासुधारं कुर्वन्तु। धागाः दुर्लभाः संसाधनाः सन्ति यदि ते प्रतिबन्धं विना निर्मिताः सन्ति तर्हि ते न केवलं प्रणालीसंसाधनानाम् उपभोगं करिष्यन्ति, अपितु प्रणाल्याः स्थिरतां न्यूनीकरिष्यन्ति ।

निर्माण मापदण्ड

अत्र चित्रविवरणं सम्मिलितं कुर्वन्तु

  • corePoolSize: थ्रेड् पूल् मध्ये कार्याय उपयुज्यतेकोरसूत्राणां संख्या
  • अधिकतमपूलआकारः .अधिकतमं सूत्राणां संख्या , सूत्रकुण्डेन अधिकतमं सूत्रसङ्ख्यां निर्मातुं अनुमतम् । यदा थ्रेड् पूल् मध्ये थ्रेड् संख्या corePoolSize प्राप्नोति, यदि कार्यपङ्क्तिः पूर्णा भवति तथा च नूतनानि कार्याणि संसाधितव्यानि सन्ति, तर्हि थ्रेड् पूल् एतानि कार्याणि संसाधितुं नूतनानि थ्रेड् (किन्तु कुलसंख्या maximumPoolSize इत्यस्मात् न अतिक्रमति) निर्मास्यति (एतत् यदा पङ्क्तिक्षेत्रं पूर्णं भवति तदा अनन्तरं सूत्राणि प्रत्यक्षतया पङ्क्तौ कूर्दितुं शक्नुवन्ति इति समतुल्यम् ।) यदि कार्याणां संख्या maximumPoolSize इत्यस्मात् अधिका भवति तथा च कार्यपङ्क्तिः पूर्णा भवति तर्हि थ्रेड् पूल् अस्वीकारनीत्यानुसारं एतानि अनिष्पादनीयकार्यं संसाधयिष्यति ।
  • keepAliveTime: corePoolSize अथवा सर्वेषां थ्रेड् इत्यस्य अतिक्रमणस्य अनन्तरं निर्मितानाम् थ्रेड् इत्यस्य जीवितस्य समयःअधिकतम जीवित रहने का समय, विन्यासानुसारम् ।
  • इकाई:keepAliveTime 的समय एकक
  • कार्यपङ्क्तिः २.कार्यपङ्क्तिः , एकः अवरोधकपङ्क्तिः अस्ति यदा सूत्राणां संख्या कोरसूत्राणां संख्यां प्राप्नोति तदा कार्यं अवरोधकपङ्क्तौ संगृहीतं भविष्यति । सामान्य कार्यान्वयनम् : BlockingQueue अन्तरफलकस्य कार्यान्वयनवर्गाः, यथा ArrayBlockingQueue, LinkedBlockingQueue इत्यादयः ।
  • threadFactory: थ्रेड् पूल् इत्यस्य अन्तः थ्रेड् निर्मातुं उपयुज्यतेयन्त्रशाला
  • संचालकः .नीतिं अङ्गीकुर्वन्तु;यदा पङ्क्तिः पूर्णा भवति तथा च थ्रेड्-सङ्ख्या अधिकतमं थ्रेड्-सङ्ख्यां प्राप्नोति तदा कार्यं संसाधितुं एषा विधिः आह्वयते ।

पैरामीटर् कथं सेट् कर्तव्यम्

1. कोर थ्रेड् (corePoolSize) इत्यस्य संख्यां निर्धारयन्तु ।

  • CPU-गहनकार्यम् : CPU-गहनकार्यस्य कृते कोर-थ्रेड्-सङ्ख्यां CPU-कोर-सङ्ख्यायाः १ तः २ गुणानां मध्ये सेट् कर्तुं सामान्यम् अस्ति । एतेन अत्यधिकं सन्दर्भ-स्विच्-परिहारं कुर्वन् CPU-संसाधनानाम् पूर्ण-उपयोगः सुनिश्चितः भवति ।
  • IO-गहनकार्यम् : IO-गहनकार्यस्य कृते यतः IO-सञ्चालनस्य प्रतीक्षया धागाः CPU -इत्यस्य कब्जां न कुर्वन्ति, अतः अधिकानि कोर-धागकाः सेट् कर्तुं शक्यन्ते । सामान्यतया, कोर थ्रेड् इत्यस्य संख्या CPU कोर इत्यस्य संख्यायाः २ गुणाधिकं सेट् कर्तुं शक्यते येन IO इत्यस्य प्रतीक्षया अधिकानि कार्याणि संसाधितुं शक्यन्ते ।
  • मिश्रितकार्यम् : यदि भवतः अनुप्रयोगे CPU-गहनं IO-गहनं च कार्यम् अस्ति तर्हि विशिष्टस्थित्याः आधारेण कोर-धागानां संख्यायाः सेटिङ्ग्स् सन्तुलितं कर्तुं आवश्यकम्

2. अधिकतमं थ्रेड्-सङ्ख्यां निर्धारयन्तु (maximumPoolSize)

  • संसाधन-प्रतिबन्धित-वातावरणम् : संसाधन-प्रतिबन्धित-वातावरणेषु (यथा एम्बेडेड्-प्रणाली अथवा क्लाउड्-सर्वर्) अत्यधिक-धागानां संसाधनानाम् अधिग्रहणं निवारयितुं अधिकतम-धागानां संख्या सीमितं भवितुम् आवश्यकम्
  • उच्चसमवर्तीप्रणाली : येषां प्रणालीनां कृते बहूनां समवर्तीनिवेदनानां निबन्धनस्य आवश्यकता भवति, तेषां कृते प्रणाल्याः समवर्तीप्रक्रियाक्षमतासुधारार्थं अधिकतमधागसङ्ख्यां समुचितरूपेण वर्धयितुं शक्यते परन्तु अधिकतमसूत्रसङ्ख्यायाः निर्धारणं प्रणाल्याः भारक्षमतायाः संसाधनस्थितेः च आधारेण व्यापकरूपेण विचारणीयः

3. थ्रेड् निष्क्रियसमयं सेट् कुर्वन्तु (keepAliveTime) .

  • CPU-गहन-अनुप्रयोगाः: CPU-गहन-अनुप्रयोगानाम् कृते, भवान् सामान्यतया थ्रेड्-निष्क्रिय-समयं लघुतर-मूल्ये सेट् कर्तुं शक्नोति यतोहि CPU-संसाधनम् अतीव बहुमूल्यं भवति तथा च भवान् बहुभिः निष्क्रिय-धागैः संसाधनानाम् कब्जां कर्तुं न इच्छति केषुचित् सन्दर्भेषु 0 इत्यपि सेट् कर्तुं शक्यते, यत् अ-कोर-सूत्राणि न धारयन्ति इति सूचयति ।
  • IO-गहन-अनुप्रयोगाः: IO-गहन-अनुप्रयोगानाम् कृते, यतः IO-सञ्चालनस्य प्रतीक्षया थ्रेड् CPU-संसाधनानाम् अधिग्रहणं न कुर्वन्ति, तस्मात् थ्रेड्-निष्क्रिय-समयं दीर्घतरं मूल्ये (यथा 1 निमेषात् अधिकं) सेट् कर्तुं शक्यते, येन नित्यं थ्रेड्-प्रारम्भः, विनाशः च न भवति .

4. कार्यपङ्क्तिं (workQueue) चिनोतु ।

  • सीमाबद्धा पङ्क्तिः : सीमाबद्धपङ्क्तौ उपयोगेन पङ्क्तौ कार्याणां प्रतीक्षासमयः सीमितः भवति तथा च अत्यधिककार्यस्य कारणेन स्मृति-अतिप्रवाहः परिहर्तुं शक्यते । परन्तु यदि पङ्क्तिदीर्घता अतिलघुः सेट् भवति तर्हि कार्याणि अङ्गीकृतानि भवितुम् अर्हन्ति । (सामान्यतया सीमाबद्धपङ्क्तिं चिनोतु
  • असीमपङ्क्तिः : असीमपङ्क्तिस्य उपयोगेन सर्वाणि कार्याणि यथासम्भवं संग्रहीतुं शक्यते, परन्तु स्मृति-उपभोग-समस्यासु भवद्भिः ध्यानं दातव्यम् । यदि असीमपङ्क्तिः उपयुज्यते तर्हि थ्रेड् पूलस्य अधिकतमं थ्रेड््स् पैरामीटर् अमान्यं भवितुम् अर्हति यतोहि थ्रेड् पूल् कतारे कार्याणि संसाधितुं नूतनानि थ्रेड् निर्मातुं न प्रयतते

5. थ्रेड फैक्टरी (threadFactory) विन्यस्तं कुर्वन्तु।

नूतनानि सूत्राणि निर्मातुं थ्रेड् फैक्ट्री इत्यस्य उपयोगः भवति । थ्रेड् फैक्ट्री अनुकूलितं कृत्वा, भवान् थ्रेड् प्राथमिकता तथा डेमन् थ्रेड् स्थिति इत्यादीन् विशेषताः सेट् कर्तुं शक्नोति, तथा च JVM मध्ये समस्यानिदानस्य सुविधायै थ्रेड् कृते सार्थकनामानि अपि सेट् कर्तुं शक्नोति

6. अस्वीकारनीतिं विन्यस्तं कुर्वन्तु (हन्डलरः) .

यदा थ्रेड् पूल् नूतनानि कार्याणि संसाधितुं न शक्नोति (अर्थात् थ्रेड्-सङ्ख्या maximumPoolSize प्राप्तवान् अस्ति तथा च कार्यपङ्क्तिः पूर्णा अस्ति), तदा एतानि अनिष्पादनीयानि कार्याणि नियन्त्रयितुं अस्वीकारनीतिं विन्यस्तुं आवश्यकम्सामान्यप्रत्याख्यानरणनीतयः अन्तर्भवन्तिप्रत्यक्षतया अपवादं क्षिपन्तुकार्यं निष्पादयितुं आह्वानकर्तुः सूत्रस्य उपयोगं कुर्वन्तुनूतनानि कार्याणि उपेक्ष्य पङ्क्तौ प्राचीनतमानि कार्याणि परित्यजन्तु प्रतीक्षतु। आवश्यकतानुसारं अस्वीकारनीतिम् अपि अनुकूलितुं शक्नुवन्ति ।