यहाँ मॉडल मैं लागू किया गया है:क्या मॉडल बीन (पुन: उपयोग) में स्थिर क्षेत्र के रूप में जीसन इंस्टेंस का उपयोग करना ठीक है?
public class LoginSession {
private static final Gson gson = new Gson();
private String id;
private String name;
private long timestamp;
public LoginSession(String id, String name) {
this.id = id;
this.name = name;
this.timestamp = System.currentTimeMillis();
}
public String toJson() {
return gson.toJson(this);
}
public static LoginSession fromJson(String json) {
checkArgument(!isNullOrEmpty(json));
return gson.fromJson(json, LoginSession.class);
}
}
मैंने सोचा कि यह हर LoginSession उदाहरण के लिए नई Gson उदाहरण बनाने के लिए बेकार है।
लेकिन जो मुझे चिंता है, वह थ्रेड-सुरक्षा समस्या है। लगभग 1000+ उदाहरण/सेकंड बनाए जाएंगे।
क्या स्टोनिक फ़ील्ड के रूप में जीसन इंस्टेंस का उपयोग करना ठीक है?
किसी भी सलाह/सुधार के लिए धन्यवाद।
हम जीएसओएन के साथ समवर्ती मुद्दों के कारण अभी दुर्घटनाग्रस्त हो गए थे। तो मुझे नहीं लगता कि यह 100% धागा सुरक्षित है - कम से कम तब जेसन को फोन नहीं कर रहा है। – slott
@ स्लॉट, आप लोग कैसे गन्सन के उदाहरण पूल/पुन: उपयोग करते हैं? क्या आप हर बार धारावाहिक करने की आवश्यकता करते हैं? या थ्रेडलोकल पूल का उपयोग करें? –
हम Google वॉली के साथ जीएसओएन का उपयोग करते हैं और जब हम JSON डेटा समवर्ती पार्स करते हैं तो हम इस समस्या को देखते हैं। जो मैं देख सकता हूं उससे यह इस तथ्य से संबंधित है कि हम डेटाटाइम मानों को पार्स करने के लिए टाइमस्टैम्प को परिभाषित करते हैं। – slott