Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的Singleton类,使成员变量线程安全,无需使用同步块_Java - Fatal编程技术网

Java中的Singleton类,使成员变量线程安全,无需使用同步块

Java中的Singleton类,使成员变量线程安全,无需使用同步块,java,Java,我有一个单例类和一个私有成员变量计数器。我有一个公共getCounter()方法,它将计数器递增1并返回它。我在web应用程序中使用这个单例类,所以我想使这个变量和方法成为线程安全的。但我不想使用同步方法或块。在我的Singleton类中,我们是否有其他oops方法来实现这种并发性?请参见(和其他),它有方法。我想这对你来说很理想 例如: import java.util.concurrent.atomic.AtomicInteger; class Singleton { // si

我有一个单例类和一个私有成员变量计数器。我有一个公共getCounter()方法,它将计数器递增1并返回它。我在web应用程序中使用这个单例类,所以我想使这个变量和方法成为线程安全的。但我不想使用同步方法或块。在我的Singleton类中,我们是否有其他oops方法来实现这种并发性?

请参见(和其他),它有方法。我想这对你来说很理想

例如:

import java.util.concurrent.atomic.AtomicInteger;

class Singleton { 
    // singleton logic ommited
    private AtomicInteger counter = new AtomicInteger();

    public int getCounter() {
        return counter.incrementAndGet();
    }
}
看(和其他),它有方法。我想这对你来说很理想

例如:

import java.util.concurrent.atomic.AtomicInteger;

class Singleton { 
    // singleton logic ommited
    private AtomicInteger counter = new AtomicInteger();

    public int getCounter() {
        return counter.incrementAndGet();
    }
}

你可以用一个例子来增强你的答案,你可以把这个类和方法链接到相应的javadoc。非常感谢!!!我们是否可以在组合中使用其他oops概念来实现这种并发性?您可以通过一个示例来增强您的答案,并且可以将类和方法链接到相应的javadoc。非常感谢!!!我们是否可以在组合中使用其他oops概念来实现这种并发性?