当前位置: 首页 > news >正文

怎么做国际货运代理外贸网站WordPress全站跳转

怎么做国际货运代理外贸网站,WordPress全站跳转,名匠装饰多少钱一平方,无锡开发公司1.概念 1.1 什么是单例模式 单例模式属于创建型模式#xff0c;一个单例类在任何情况下都只存在一个实例#xff0c; 构造方法必须是私有的、由自己创建一个静态变量存储实例#xff0c;对外提供一 个静态公有方法获取实例。 1.2 优点与缺点 优点:是内存中只有一个实例一个单例类在任何情况下都只存在一个实例 构造方法必须是私有的、由自己创建一个静态变量存储实例对外提供一 个静态公有方法获取实例。 1.2 优点与缺点 优点:是内存中只有一个实例减少了开销尤其是频繁创建和销毁实例的情况下可以避免对资源的多重占用。 缺点:没有抽象层难以扩展与单一职责原则冲突单例模式由于其全局访问的特性往往会使得类的使用变得非常广泛这会导致类的职责膨胀变得越来越难以维护。。 2.实现方式 2.1 懒汉式 懒加载 lazy loading使用的时候再创建对象。 2.1.1 懒汉式线程不安全 在第一次调用获取实例的方法时才创建实例。由于没有同步措施因此线程不安全。 public class Singleton {private static Singleton instance;private Singleton() {}public static Singleton getInstance() {if (instance null) {instance new Singleton();}return instance;} }2.1.2 懒汉式线程安全 在懒汉式的基础上通过同步代码块或方法来确保线程安全但会降低性能。 public class Singleton {private static Singleton instance;private Singleton() {}public static synchronized Singleton getInstance() {if (instance null) {instance new Singleton();}return instance;} }2.2 饿汉式 类加载时就创建好实例避免了线程同步问题但可能会导致资源浪费。 public class Singleton {private static Singleton instance new Singleton();private Singleton() {}public static Singleton getInstance() {return instance;} }2.3 双重检查锁定Double-Checked Locking 结合懒汉式和线程安全的特点在获取实例时进行双重检查以提高性能。 public class Singleton {private static volatile Singleton instance;private Singleton() {}public static Singleton getInstance() {if (instance null) {synchronized (Singleton.class) {if (instance null) {instance new Singleton();}}}return instance;} }volatile关键字的作用是确保instance变量的可见性和防止指令重排序。 2.4 静态内部类 利用Java的类加载机制来实现懒加载和线程安全。 public class Singleton {private Singleton() {}private static class SingletonHolder {private static final Singleton INSTANCE new Singleton();}public static Singleton getInstance() {return SingletonHolder.INSTANCE;} }在这个示例中SingletonHolder是一个静态内部类它包含了一个静态的Singleton实例。SingletonHolder类只有在getInstance()方法被调用时才会被加载这保证了Singleton实例的延迟加载。同时由于类的加载过程是线程安全的所以这种方式也保证了单例的线程安全。 2.5 枚举 使用枚举来实现单例模式这是最简单的实现方式并且天生线程安全防止多次实例化。 public enum Singleton {INSTANCE1,INSTANCE2;public void someMethod() {// 功能处理System.out.println(执行一些功能处理);} }public class Main {public static void main(String[] args) {// 调用第一个枚举实例的方法Singleton.INSTANCE1.someMethod();// 调用第二个枚举实例的方法Singleton.INSTANCE2.someMethod();} }枚举天生线程安全的原因在于Java枚举的设计和实现 枚举实例的创建时机枚举的实例是在类加载时创建的这个过程是由Java虚拟机JVM在加载枚举类时自动完成的。JVM确保在任何线程可以访问枚举的实例之前这些实例已经被创建并初始化完毕。 Java内存模型JMMJava内存模型确保了所有线程可以看到枚举实例的创建和初始化状态。这意味着在任何线程可以访问枚举的实例之前这些实例的状态对于所有线程都是可见的。 同步机制在枚举实例的创建过程中JVM内部会使用同步机制来确保实例的创建是原子性的也就是说在创建枚举实例的过程中不会有其他线程干扰。 不可变性枚举实例一旦被创建就不能被修改或重新赋值。这意味着多个线程可以安全地访问枚举实例而不会出现竞态条件或数据不一致的问题。 由于这些原因枚举天生就是线程安全的不需要开发者手动处理同步问题。
http://www.w-s-a.com/news/579430/

相关文章:

  • 中山做网站的wordpress建站教程百科
  • 湛江专业网站制作做网站需要工具
  • 做音箱木工网站吉林平安建设网站
  • 品牌网站建设咨询灯光设计网站推荐
  • 温州网站运营打开百度一下网页版
  • 网站有情链接怎么做住房公积金个体工商户
  • 内蒙古网站开发网站开发验收资料
  • 温州网站建设首选国鼎网络网络营销方法可分为两类
  • 做张家界旅游网站多少钱企业推广网络营销
  • 代做毕设网站推荐广东手机微信网站制作
  • 福州建设工程质量监督网站专业做公司宣传网站的
  • 百度云建站教程网站工程师是做什么的
  • 手机在线制作网站一级消防工程师考试试题及答案
  • 网站设计的需求网页制作教程和素材
  • 徐州网站建设 网站推广WordPress 文章编辑
  • 做什么网站比较受欢迎软件商店下载安装2023版本最新
  • 做ip资讯的网站怎么在wordpress中套用同行网页
  • 医院网站如何备案东莞优化公司收费
  • 罗村网站开发适合ps做图的素材网站有哪些
  • 网站建设中 油财宝企业网址怎么整
  • asp.net空网站php网站开发要学什么
  • 做可视化的网站微信网站模版下载
  • 包头移动的网站建设茂名建站价格
  • 网站文章内容一键排版功能铜山网站建设
  • cdr可不可做网站对网站建设起到计划和指导的作用
  • 合肥最好的网站建设网页设计心得体会2000字
  • 西安网站品牌建设门户网站类型
  • 网上做调查问卷的网站请人做网站域名和主机
  • 个人网站模板html5找公司网站建设
  • 找最新游戏做视频网站一个做网站的团队需要哪些人员