多线程之单例与死锁

单例模式应用的场景:

(1)资源共享的情况下,避免由于资源操作时导致的性能或损耗等。如日志文件,应用配置。

(2)控制资源的情况下,方便资源之间的互相通信。如线程池等

多线程之单例与死锁_第1张图片
饿汉式和懒汉式(多线程)

饿汉式:对象随着类的加载就在内存中开辟了空间,懒汉式:初始为空,当调用时才实例化,节省空间、提高性能

另外需注意:同步中嵌套同步会造成死锁,如下图:

多线程之单例与死锁_第2张图片
同步锁locka内嵌套同步锁lockb

注:JDK1.5以后synchronized被lock取代

你可能感兴趣的:(多线程之单例与死锁)