我们知道单例分为饿汉式、懒汉式,单例在我们开发中经常用到,本篇内容主讲
public class JavaUtils {private static JavaUtils instance = null;
private JavaUtils() {}
public static JavaUtils getInstance() {if (instance == null) {instance = new JavaUtils();
}
return instance;
}
public void javaTest(){System.out.println("Java 懒汉式 单例模式");
}
}
2、Kotlin懒汉式单例模式class KotlinUtils private constructor() {companion object {val instance: KotlinUtils by lazy {KotlinUtils()
}
}
fun kotlinTest() {println("kotlin 懒汉式 单例模式")
}
}
以上实现的单例
但是在我们开发中经常需要考虑线程安全的问题,对Java单例一般使用双重检验锁,kotlin中也提供了线程安全的实现方式
3、Java 同步懒汉式单例模式public class JavaSyncUtils {private volatile static JavaSyncUtils instance = null;
private JavaSyncUtils() {}
public static JavaSyncUtils getInstance() {if (instance == null) {synchronized (JavaSyncUtils.class){if (instance==null){instance = new JavaSyncUtils();
}
}
}
return instance;
}
public void javaTest(){System.out.println("Java 懒汉式 单例模式-双重检验锁");
}
}
4、Kotlin同步懒汉式单例模式class KotlinSyncUtils private constructor() {companion object {val instance: KotlinSyncUtils by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) {KotlinSyncUtils()
}
}
fun kotlinTest() {println("kotlin 懒汉式 单例模式-双重检验锁")
}
}
mode = LazyThreadSafetyMode.SYNCHRONIZED kotlin已经对同步安全进行封装
同步单例:
JavaUtils.getInstance().javaTest()
JavaSyncUtils.getInstance().javaTest()
println()
KotlinUtils.instance.kotlinTest()
KotlinSyncUtils.instance.kotlinTest()
Java 懒汉式 单例模式
Java 懒汉式 单例模式-双重检验锁
kotlin 懒汉式 单例模式
kotlin 懒汉式 单例模式-双重检验锁
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享标题:Kotlin之单例模式-创新互联
URL网址:https://www.cdcxhl.com/article28/peicp.html
成都网站建设公司_创新互联,为您提供企业建站、域名注册、静态网站、网站策划、网站维护、定制网站
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联