public interface Instance
| Modifier and Type | Method and Description |
|---|---|
<T> T |
multiple(Class<T> clazz)
多例对象,每次都是全新的创建
|
<T> T |
singleton(Class<T> clazz)
获取对象的单例对象
1.
|
<T> T |
singleton(Class<T> clazz,
String groupName)
获取对象的单例对象
1.
|
<T> T |
threadLocal(Class<T> clazz)
获取每个线程内唯一的实例化对象
注意:可能会内存泄漏的场景。
(1) 只要这个线程对象被gc回收,就不会出现内存泄露,但在threadLocal设为null和线程结束这段时间不会被回收的,就发生了我们认为的内存泄露。
最要命的是线程对象不被回收的情况,这就发生了真正意义上的内存泄露。比如使用线程池的时候,线程结束是不会销毁的,会再次使用的。就可能出现内存泄露。
参考资料:https://www.cnblogs.com/onlywujun/p/3524675.html
|
<T> T |
threadSafe(Class<T> clazz)
线程安全对象
1.
|
<T> T singleton(Class<T> clazz, String groupName)
T - 泛型clazz - class 类型groupName - 分组名称<T> T singleton(Class<T> clazz)
T - 泛型clazz - class 类型<T> T threadLocal(Class<T> clazz)
T - 泛型clazz - class 类型弱引用<T> T multiple(Class<T> clazz)
T - 泛型clazz - class 类型<T> T threadSafe(Class<T> clazz)
ThreadSafe 注解,
如果有,则直接创建单例对象。如果不是,则创建多例对象。T - 泛型clazz - class 类型Copyright © 2019. All rights reserved.