मैं एक नक्शा बनाने की कोशिश कर रहा हूं जिसमें प्रविष्टियां समय समाप्त हो जाएं और एक निश्चित समय अवधि के बाद हटा दी जाए।समय/क्षणिक प्रविष्टियों के साथ मानचित्र - स्मृति कोई समस्या नहीं
असल में, <K, V> Map.put(K key, V value, long **time**)
- प्रविष्टि तुरंत नक्शे में रखी जाएगी और समय (एमएस) के बाद समाप्त हो जाएगी। मुझे भविष्य में किसी भी बिंदु पर निकाली गई प्रविष्टि को पुनर्प्राप्त करने की आवश्यकता नहीं है, लेकिन मैं यह सुनिश्चित करना चाहता हूं कि यह अब मानचित्र में नहीं है।
उदाहरण के लिए: map.put("foo", "bar", 60l * 1000l)
इस कुंजी-मूल्य जोड़ी को एक मिनट (60long और 1000long) के लिए मानचित्र में रहने देगा।
प्रयास: एक ConcurentMap का उपयोग करें और Map.put(K key, V value, long **time**)
लागू निम्नलिखित के माध्यम से:
1. कॉल super.put(key, value)
2. एक धागा है कि समय (ms)
3. कॉल remove(key)
प्रविष्टि को निकालने के लिए सोता पैदा करते हैं।
प्रश्न: कृपया टिप्पणी करें/मुझे बताएं कि क्या यह थ्रेड-सुरक्षा, स्थिरता या मेरे प्रयास में किसी भी दोष के संदर्भ में एक अच्छा विचार है। यदि आपको लगता है कि इसे पूरा करने का एक बेहतर तरीका है, तो कृपया कोई सलाह दें।
संपादित करें: उत्तर के लिए धन्यवाद, मेमोरी यहाँ कोई समस्या नहीं है, मैं वास्तव में केवल प्रविष्टियों के छोटे जीवन काल की परवाह करता हूं। धन्यवाद।
उत्तर के लिए धन्यवाद, लेकिन मैं केवल समय के साथ यहां सवाल है, स्मृति कोई मुद्दा नहीं है। त्वरित संपादन के लिए –
+1।मैं प्रविष्टियों को अलग-अलग समय के लिए जीवित रखना चाहता हूं लेकिन टाइमर के साथ दूसरा कार्यान्वयन बहुत उपयोगी है। धन्यवाद। –