单件模式确保一个类只有一个实例,并提供一个全局访问点。由于比较简单,这里只给出具体代码。
其中volatile用来修饰被不同线程访问和修改的变量。如果没有volatile,基本上会导致这样的结果:
要么无法编写多线程程序,要么编译器失去大量优化的机会。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class Singleton { private volatile static Singleton uniqueInstance;<br> private Singleton(){} public static Singleton getInstance() { if (uniqueInstance== null ) { synchronized (Singleton. class ) { if (uniqueInstance== null ) { uniqueInstance= new Singleton(); } } } return uniqueInstance; } } |
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步