使类级别DTO(实例变量)线程安全java

时间:2015-03-30 19:15:31

标签: java multithreading thread-safety

我有班级DTO。我必须使它线程安全。 为什么我要这样做是因为多个请求同时发送数据跨越线程。 我知道类级变量不是线程安全的。但有没有办法让它的线程安全。 我不想使用同步作为其性能损失,并且wount在负载平衡中工作。任何想法如何实现这个

帮助赞赏:)

先谢谢

代码:

public class MyExecutor implements Executor {

    private DataDTO DataDTO;
//Getters and setters
.
.

。 这个DTO被发送到下一层 }

1 个答案:

答案 0 :(得分:1)

通过将所有类成员声明为final使 DTO 不可变,在创建DTO时提供构造函数来设置它们(类成员)。

通过这样做,您可以确保所有值都是只读/设置一次。此外,您还可以删除(或不生成/提供)任何setter。例如:

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