• 单例模式


    简单的单例:

     1 public class Student
     2     {
     3         //1。私有静态变量
     4         private static Student stu = null;
     5 
     6         //2。私有化构造函数
     7         private Student()
     8         {
     9         }
    10 
    11         //3.提供一个静态方法让外部可以访问得到
    12         public static Student GetInstance()
    13         {
    14             if (stu == null)
    15             {
    16                 stu = new Student();
    17             }
    18             return stu;
    19         }
    20     }
    简单的单例模式,适用于非多线程

    多线程单例:

     1 //1。私有静态变量
     2         private static Student stu = null;
     3         private static object _lock = new object();
     4 
     5         //2。私有化构造函数
     6         private Student()
     7         {
     8         }
     9 
    10         //3.提供一个静态方法让外部可以访问得到
    11         public static Student GetInstance()
    12         {
    13             if (stu == null)
    14             {
    15                 lock (_lock)
    16                 {
    17                     if (stu==null)
    18                     {
    19                         stu = new Student();
    20                     }
    21                 }
    22                 
    23             }
    24             return stu;
    25         }
    适用于多线程的单例
  • 相关阅读:
    luogu 2627 修剪草坪
    luogu2746 [USACO5.3]校园网Network of Schools
    luogu 1558 色板游戏
    luogu 2827 蚯蚓
    POJ 2559 Largest Rectangle in a Histogram
    luogu 1886 滑动窗口
    luogu 1090 合并果子
    uva 11572
    uva 12626
    uva 10222
  • 原文地址:https://www.cnblogs.com/liyajie/p/3674910.html
Copyright © 2020-2023  润新知