2015-03-30 35 views
-2

我有Class級別的DTO。我必須讓它線程安全。 爲什麼我想這樣做是當多個請求來到同一時間數據跨線程交換。 我知道類級別的變量不是線程安全的。但是有沒有什麼辦法可以讓線程安全。 我不想使用同步作爲其性能命中,並在負載平衡中工作。任何想法如何實現這一使類級DTO(實例變量)線程安全java

幫助讚賞:)

由於提前

代碼:

public class MyExecutor implements Executor { 

    private DataDTO DataDTO; 
//Getters and setters 
. 
. 

。 這個DTO發送到下一層 }

+0

它是實例變量,而不是類。 – kosa 2015-03-30 19:17:12

+0

請閱讀本指南[寫一個很好的問題](http://stackoverflow.com/help/how-to-ask)。 – RealSkeptic 2015-03-30 19:19:25

+0

其實例變量(Wrapper類) – 2015-03-30 19:19:41

回答

1

充分利用DTO不變,宣佈所有的類成員final,提供一個構造函數在創建DTO對其進行設置(類成員)。

通過這樣做,您可以確保所有值都是隻讀/設置一次。此外,您還可以刪除(或不生成/提供)任何設置器。例如:

public final class DataDTO { 
    private final String data; 
    private final String description; 

    public DataDTO(String data, String description) { 
    this.data = data; 
    this.description = description; 
    } 

    public String getData() { return data; } 

    public String getDescription() { return description; } 
} 

注:如果您需要從類擴展刪除final