我想对多个单例进行急切的初始化,但初始化可能需要几分钟的时间,所以我希望初始化发生在单独的线程上。有没有办法做到这一点?如何在单独的线程中进行单例的初始化初始化?
回答
当然,只需启动一个辅助线程并让它执行它。最简单的方法是使用SingletonHolder并执行任何会导致辅助线程初始化的操作。如果在初始化完成之前尝试访问它,其他线程将会被阻止,所以一切正常。
这很懒,不急于初始化。 –
你真的看过我的回答吗? SingletonHolder意味着延迟初始化,立即在新线程中访问它,使其尽快发生。这是关于所有可以实现的,不是吗? ---我现在看到你用guice标记你的问题,这改变了事情。 – maaartinus
对不起,我应该让问题中的Guice部分更明显。 –
- 1. 如何初始化一个单独的线程中的类
- 2. 初始化ruby单例
- 3. boost.threads单例初始化
- 4. 初始化实例的单例
- 5. 单例类中的初始化列表
- 6. 如何初始化传单路由线
- 7. 在Android中进行单例初始化的正确方法?
- 8. 单独的PHP类初始化文件
- 9. 从单独的.php表初始化dataTable
- 10. 如何初始化Kotlin中的线程?
- 11. 如何在单独的行上使用“new”初始化数组?
- 12. java中的初始化初始化
- 13. 简单的DataTables示例初始化
- 14. 如何初始化和单行
- 15. 结构数组的单线初始化
- 16. CLKComplicationServer初始化已初始化的单例类CLKComplicationDataSource,虽然的init()是私有
- 17. ruby - 类的实例化和初始化(初始化不叫?)
- 18. 初始化主线程
- 19. 线程化类成员函数;线程初始化通过初始化列表
- 20. Objective C - 单例类instan未初始化
- 21. Objective-C类初始化或单例
- 22. 初始化在初始化列表
- 23. 进程未初始化
- 24. 在指定的初始化程序中初始化实例对象?
- 25. 初始化表单控件
- 26. StructureMap初始化web表单
- 27. 初始化单链表Java
- 28. 初始化单后裔
- 29. C++单初始化顺序
- 30. 订单字段初始化
你可以使用这些单身代理吗?你是否想要在接线阶段中并行化这些昂贵的单例的初始化? – mhaller
如果您有多个需要几分钟才能初始化的单身人士,听起来像您有设计问题。您应该始终能够编写应用程序,因此不需要几分钟即可开始。也许你可以解释为什么需要这么长时间,也许有更好的方法。 –