Запустите JVM в новом экземпляре или приостановите JVM на некоторое время - PullRequest
0 голосов
/ 26 мая 2010

Я хочу остановить JVM на некоторое время, через несколько минут JVM должна запустить свое выполнение с этой точки. Это возможно в Java?

Или я хочу запустить некоторую часть кода в экземпляре другой JVM?

Ответы [ 2 ]

0 голосов
/ 26 мая 2010

Чтобы запустить что-то в новом экземпляре JVM, вы можете

try {
    Runtime.getRuntime().exec("java <another class to run in the new JVM instance>")
}
catch(Exception e) {
    // handle the exception
}

затем сохраните его состояние и возобновите в какой-то момент, предоставив последнее состояние. Кроме того, чтобы программно «приостановить» выполнение, вы должны запустить класс, который вы хотите приостановить в какой-то момент в отдельном потоке (это не должен быть процесс (новый экземпляр JVM), чтобы его приостановить) и перевести его в режим сна на некоторое время. С точки зрения ресурсов подход с потоками лучше, но имейте в виду, что процесс имеет ограниченный объем доступной памяти (и много потоков потребляют ее много), поэтому вам, вероятно, потребуется увеличить этот объем.

0 голосов
/ 26 мая 2010

За то, что вы хотите сделать это. Вы можете попробовать приостановить все потоки на некоторое время и возобновить после задержки, используя JVM Tool Interface Это может быть недоступно на всех JVM, поэтому вам следует сначала запросить возможности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...