Как сделать нетерпеливую инициализацию синглтона в отдельном потоке? - PullRequest
0 голосов
/ 16 октября 2011

Я хотел бы выполнить активную инициализацию нескольких синглетонов, но инициализация может занять порядка минут, поэтому я хотел бы, чтобы инициализация происходила в отдельном потоке.Есть ли способ сделать это?

Ответы [ 2 ]

1 голос
/ 18 октября 2011
0 голосов
/ 16 октября 2011

Конечно, просто запустите вспомогательный поток и дайте ему это сделать.Самый простой способ - использовать SingletonHolder и делать все, что вызывает инициализацию во вспомогательном потоке.Другие потоки будут блокироваться, если они попытаются получить к нему доступ до завершения инициализации, поэтому все работает нормально.

...