多线程的饿汉式和懒汉式

时间:2025-12-26 17:55:35 java语言

多线程的饿汉式和懒汉式

  导语:多线程的单例设计模式保证某个类中内存中只有一个对象,分为饿汉式和懒汉式,让我们了解一下吧!

  (1)饿汉式:

  class Single

  {

  private Single(){}/pic/p>

  private static final Single s=new Single();/pic/p>

  public static Single getInstance()/pic/p>

  {

  return s;

  }

  }

  (2)懒汉式:

  class Single

  {

  private Single(){}

  private static Single s;

  public static Single getInstance()

  {

  if(s==null)

  s=new Single();

  return s;

  }

  }

  饿汉式和懒汉式的区别:

  **

  饿汉式是类一加载进内存就创建好了对象;

  懒汉式则是类加载进内存的时候,对象还没有存在,只有调用了getInstance()方法时,对象才开始创建。

  **

  懒汉式是延迟加载,如果多个线程同时操作懒汉式时就有可能出现线程安全问题,解决线程安全问题

  可以加同步来解决。但是加了同步之后,每一次都要比较锁,效率就变慢了,

  所以可以加双重判断来提高程序效率。

  如将上述懒汉式的Instance函数改成同步:

  public static Single getInstance()

  {

  if(s==null)

  {

  synchronized(Single.class)

  {

  if(s==null)

  s=new Single();

  }

  }

  return s;

  }


【多线程的饿汉式和懒汉式】相关文章:

java多线程的同步和异步02-02

Java多线程的定义状态和属性12-25

参与式教学总结11-14

什么是响应式布局02-02

响应式网页设计12-01

《除法竖式》教案11-28

《多项式除以单项式》最新教学设计11-27

初中数学教案《多项式与多项式相乘》12-21

初一数学用字母表示数一次式和一次式的值的试题01-17