Несколько процессов Java не используют одну и ту же виртуальную машину.
Таким образом, вы получите один экземпляр JVM, на котором размещен синглтон, а затем один экземпляр JVM на процесс, который обращается к синглтону с помощью удаленного вызова метода, как предложено в @Little Bobby Tables.
Несколько синглетонов на двух или более виртуальных машинах
Когда копии класса Singleton выполняются на нескольких виртуальных машинах, для каждой машины создается экземпляр. То, что каждая виртуальная машина может содержать свой собственный Singleton, может показаться очевидным, но в распределенных системах, таких как использующие EJB, Jini и RMI, это не так просто. Поскольку промежуточные уровни могут скрывать распределенные технологии, определить, где в действительности создан объект, может быть сложно.
Например, только контейнер EJB решает, как и когда создавать объекты EJB или перерабатывать существующие. EJB может существовать в другой виртуальной машине, нежели код, который его вызывает. Более того, один EJB может быть создан одновременно в нескольких виртуальных машинах. Для сессионного компонента без сохранения состояния несколько обращений к тому, что кажется вашему коду одним экземпляром, могут фактически быть вызовами разных экземпляров на разных виртуальных машинах. Даже объектный EJB-компонент может быть сохранен с помощью механизма постоянства между вызовами, так что вы не знаете, какой экземпляр отвечает на вызовы вашего метода. (Первичный ключ, который является частью спецификации бина сущности, необходим именно потому, что ссылочная идентификация бесполезна при идентификации бина.)
Способность контейнеров EJB распространять идентичность одного экземпляра EJB по нескольким виртуальным машинам вызывает путаницу, если вы пытаетесь написать Singleton в контексте EJB. Поля экземпляра Singleton не будут глобально уникальными. Поскольку для того, что кажется одним и тем же объектом, задействовано несколько виртуальных машин, возможно появление нескольких объектов Singleton.
Системы, основанные на распределенных технологиях, таких как EJB, RMI и Jini, должны избегать синглетонов, которые содержат состояние. Синглеты, которые не хранят состояние, а просто контролируют доступ к ресурсам, также не подходят для EJB, поскольку управление ресурсами является ролью контейнера EJB. Однако в других распределенных системах объекты Singleton, управляющие ресурсами, могут использоваться при том понимании, что они не уникальны в распределенной системе, только в конкретной виртуальной машине.