线程安全的多参构建器实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程安全的多参构建器实现相关的知识,希望对你有一定的参考价值。

适用情况:

1:参数多

2:需要带参构造器多(避免冗余)

3:多线程并发情况

 

/**
 * 线程安全的多参构建器实现
 *
 * @author 祥少
 *
 */
public class Test {
    private int a;
    private int b;
    private int c;

    @Override
    public String toString() {
        return "Test [a=" + a + ", b=" + b + ", c=" + c + "]";
    }

    public Test(Build bd) {
        a = bd.a;
        b = bd.b;
        c = bd.c;
    }

    public static class Build {
        private int a;
        private int b = 0;
        private int c = 0;

        public Build(int a) {
            this.a = a;
        }

        public Build setB(int b) {
            this.b = b;
            return this;
        }

        public Build setC(int c) {
            this.c = c;
            return this;
        }

        public Test build() {
            return new Test(this);
        }
    }

    public static void main(String[] args) {
        Test test = new Test.Build(100).setB(200).build();
        System.out.println(test.toString());
    }
}

以上是关于线程安全的多参构建器实现的主要内容,如果未能解决你的问题,请参考以下文章

单例模式双重检查(DCL)引发的多线程问题

Servlet的多线程和线程安全

java的多线程:线程安全问题

WPF 支持的多线程 UI 并不是线程安全的

如何安全地终止线程? (使用指针)C++

c++ 中的多线程线程安全动画建议