|
|
|
Экземпляры синглтона
|
|||
|---|---|---|---|
|
#18+
Привет всем! Написал такой вот классец (переменная testNum при создании экземпляра синглтона = 0, метод incTestNum() делает testNum++) Код: java 1. 2. 3. 4. 5. 6. 7. 8. Я останавливаюсь на указанной строке, затем выполняю JAR с этим же классом, он мне выдает 0, 1 . Объясните, почему не 1, 2 , ведь у нас один экземпляр на всю.... на всю чего? JWM? PS Про classloader'ы читал ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2015, 17:51 |
|
||
|
Экземпляры синглтона
|
|||
|---|---|---|---|
|
#18+
Потому что JVM не живет своей жизнью в системе. Она запускается когда вы запускаете jar и освобождает память, когда выполнение метода main() закончено и нет других работающих потоков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2015, 18:05 |
|
||
|
Экземпляры синглтона
|
|||
|---|---|---|---|
|
#18+
Когда у меня висит отладка, JVM работает и в её адресном пространстве уже есть экземпляр в данном случае. Нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2015, 18:30 |
|
||
|
Экземпляры синглтона
|
|||
|---|---|---|---|
|
#18+
Вам пытаются сказать, что если вы ставите точку останова в конце метода main, то JVM имеет полное право собрать весь мусор, который уже не нужен. Включая экземпляр вашего класса-одиночки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2015, 18:45 |
|
||
|
Экземпляры синглтона
|
|||
|---|---|---|---|
|
#18+
giigroзатем выполняю JAR с этим же классомМожете с этого места по подробнее? Как выполняете и т.д? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2015, 18:48 |
|
||
|
Экземпляры синглтона
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, тут гораздо проще - речь идет о 2-х несвязанных процессах, и обычные синглтоны для синхронизации тут не подходят. Для синхронизации 2-х jvm нужен уникальный ресурс на уровне ОС ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2015, 18:56 |
|
||
|
Экземпляры синглтона
|
|||
|---|---|---|---|
|
#18+
giigroи в её адресном пространстве уже есть экземпляр в данном случае. Нет? Нет. У двух JVM два разных адресных пространства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2015, 19:01 |
|
||
|
Экземпляры синглтона
|
|||
|---|---|---|---|
|
#18+
То, что разные JVM работают в разных процессах - должно быть очевидно и поэтому я обоснованно предположил, что автор удивлён результатом перезапуска метода в рамках одной JVM. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2015, 19:02 |
|
||
|
Экземпляры синглтона
|
|||
|---|---|---|---|
|
#18+
giigroПривет всем! Написал такой вот классец (переменная testNum при создании экземпляра синглтона = 0, метод incTestNum() делает testNum++) Код: java 1. 2. 3. 4. 5. 6. 7. 8. Я останавливаюсь на указанной строке, затем выполняю JAR с этим же классом, он мне выдает 0, 1 . Объясните, почему не 1, 2 , ведь у нас один экземпляр на всю.... на всю чего? JWM? PS Про classloader'ы читал Один экземпляр на одно работающее приложение. В вашем случае работают два экземпляра вашего приложения в двух разных JVM. А если, например, два экземпляра одного веб приложения в Томкэте (JVM одна и та же), то на каждый экземпляр приложения свой единственный экземпляр класса. Класслодеры у приложений разные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.06.2015, 19:28 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38983517&tid=2125294]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
139ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 423ms |

| 0 / 0 |
