相关疑难解决方法(0)

为什么在双重检查锁定中使用volatile

Head First设计模式书中,具有双重检查锁定的单例模式已实现如下:

public class Singleton {
    private volatile static Singleton instance;
    private Singleton() {}
    public static Singleton getInstance() {
        if (instance == null) {
            synchronized (Singleton.class) {
                if (instance == null) {
                    instance = new Singleton();
                }
            }
        }
        return instance;
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么volatile被使用.volatile使用不会 破坏使用双重检查锁定的目的,即性能?

java singleton design-patterns locking double-checked-locking

70
推荐指数
3
解决办法
2万
查看次数

如何在两个JVM实例之间共享内存?

我在JVM(Scala)中构建了一个巨大的图形,我想重复使用它,调整算法.我不想每次都从磁盘重装它.有没有办法让它在一个JVM中连接而从另一个JVM连接,算法正在开发中?

java jvm scala

18
推荐指数
1
解决办法
1万
查看次数

避免裂脑,投票和法定人数

假设您有n个进程,n> 2.您希望在它们之间达成协议,即一个进程是活动的.所以他们需要彼此投票以确定哪一个是活跃的.

所有进程都可能随时失败,我们希望尽可能让一个进程处于活动状态,但......

我们必须永远不要同时有两个活跃,所以如果他们不能确定没有一个活跃的更好.(即我们想避免裂脑)

它们之间唯一可用的通信机制是pub-sub消息传递(不是点对点).

可以使用一个或多个数据库,但没有一个数据库应该是单点故障.IE浏览器.如果所有流程都可以工作,那将是非常不受欢迎的,并且由于丢失了单个数据库而无法这样做.

设计?需要发布什么消息?

messaging

14
推荐指数
1
解决办法
7633
查看次数

在许多节点中部署的Java应用程序中的类的单实例(单例)

在技​​术讨论中,我遇到了如何跨节点维护单个实例的问题,然后我回答了以下方法

1)基于DB的解决方案

2)分布式缓存

3)分片

4)在负载均衡器中维护Singleton单实例

面试官期待更多的东西,因为他回复了数据库,而且Cache会工作,分片无法工作,也没有对负载均衡器方法的评论,然后他补充说,让我们假设你的应用程序中不允许使用DB和Cache方法,给我另一个选择我在这一点上被困住了.

然后我用Google搜索并找到以下内容

如何为多个jvm支持创建单例java类?

群集环境中的单例

https://javaarchitectforum.com/2013/02/19/singleton-design-pattern-with-example/

还从应用程序服务器中找到了一些支持

http://www.onjava.com/pub/a/onjava/2003/08/20/jboss_clustering.html

http://docs.oracle.com/cd/E12840_01/wls/docs103/cluster/service_migration.html#wp1051458

http://docs.oracle.com/cd/E24152_01/Platform.10-1/ATGPlatformProgGuide/html/s1005runningthesameschedulableservice01.html

请帮助我解决您的想法,这将是跨节点实现单个实例(单例)的最佳方法

java singleton application-server cluster-computing

3
推荐指数
1
解决办法
677
查看次数