這裏我實現了模型:可以將Gson實例用作模型bean中的靜態字段(重用)嗎?
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+個實例/秒。
將Gson實例用作靜態字段可以嗎?
感謝您的任何建議/更正。
由於GSON的併發問題,我們剛剛發生了崩潰。所以我不認爲它是100%線程安全的 - 至少不會打電話給Json。 – slott
@slott,你們如何彙集/重用Gson實例?你是否每次需要序列化時都要實例化一個?或者使用threadlocal池? –
我們將GSON與Google Volley一起使用,當我們解析JSON數據併發時,我們看到了這個問題。從我可以看到這與我們爲解析日期時間值定義時間戳的事實有關。 – slott