निष्पादित करने के लिए लोगों का उल्लेख किया है की एक संख्या के रूप में और का सामना करना पड़ा HashMap.put
एक अनंत निष्पादन पाश जब समवर्ती इस्तेमाल किया में जाने (GRIZZLY-1207, JGRP-525, संभवतः HHH-6414 देखते हैं, कर सकते हैं और इस अतः answer)।समय HashMap.put के कारण के बारे में बताएं() अनंत लूप
HashMap
स्पष्ट रूप से थ्रेड सुरक्षित नहीं है। जाहिर है, सही फिक्स Map
, ConncurrentHashMap
विशेष रूप से थ्रेड-सुरक्षित कार्यान्वयन का उपयोग करना है। मैं समवर्ती समय के बारे में अधिक उत्सुक हूं जो अनंत लूप का कारण बनता है। मुझे हाल ही में जावा 7 जेआरई के साथ इस लूप का सामना करना पड़ा और सटीक कारणों को समझना चाहूंगा। उदाहरण के लिए, क्या यह एक ही समय में एकाधिक स्थानों के कारण होता है?
HashMap.put के अंदर एक नज़र से पता चलता है कि HashMap.Entry
में अगले नोड (बाल्टी में) का एक लिंक शामिल है। मुझे लगता है कि ये लिंक सर्कुलर संदर्भों को भ्रष्ट करने के लिए भ्रष्ट हो रहे हैं, जो अनंत लूप का कारण बन रहा है। हालांकि, मैं अभी भी समझ में नहीं आता कि भ्रष्टाचार कैसे हो रहा है।