2015-03-30 2 views
-2

У меня есть класс DTO. Я должен сделать его потокобезопасным. Почему я хочу сделать это, когда приходит многократный запрос, в то же время данные обмениваются по потокам. Я знаю, что переменные уровня класса не являются потокобезопасными. Но есть ли способ сделать его потокобезопасным. Я не хочу использовать синхронизацию, так как ее производительность и производительность работают в балансе нагрузки. Любая идея, как достичь этогоСоздание класса DTO (переменная экземпляра) thread safe java

Помощь оценили :)

Заранее спасибо

Код:

public class MyExecutor implements Executor { 

    private DataDTO DataDTO; 
//Getters and setters 
. 
. 

. это DTO отправляются к следующему слою }

+0

Это переменная экземпляра, а не класс. – kosa

+0

Пожалуйста, прочитайте это [руководство по написанию хорошего вопроса] (http://stackoverflow.com/help/how-to-ask). – RealSkeptic

+0

его переменная экземпляра (класс Wrapper) –

ответ

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.

Смежные вопросы