单例:在程序的整个进程中只会被实例化一次

如:User user =new User();实例化一个User();的时候new User()是调用的 User类的 默认的公有构造函数:public User(){};

一.想要整个程序只实例化一次这个User的话如:

1.private static User_user=null; 定义一个私有的静态变量

2.提供静态公有方法返回实例化对象

public static GetUser(){ 
          if(User_user==null)
            {
                User_user=new User();
            }
            return User_user;
        }

3.调用:User user =User.GetUser();//进行返回单个实例

4.多线程的时候需要加一把锁:

  private static object _lock =new object();//定义一个静态的对象最好是object类型
        public static GetUser(){ 
            if (User_user==null)
            {
              lock (_lock)
                {
                  if(User_user==null)
                    {
                        User_user=new User();
                    }
                }
            }
            return User_user;
        }
加锁进行多线程判断

相关文章:

  • 2022-01-27
  • 2022-01-23
  • 2022-02-19
猜你喜欢
  • 2021-09-19
  • 2021-09-02
  • 2022-01-10
  • 2021-07-18
  • 2021-11-19
  • 2021-06-20
  • 2021-06-17
相关资源
相似解决方案