博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Singleton模式(一) - 简单多线程计数器
阅读量:5834 次
发布时间:2019-06-18

本文共 678 字,大约阅读时间需要 2 分钟。

1. 经典的设计模式中的代码

public 
class Singleton
    {
        
private 
static Singleton instance;   
//
 唯一实例
        
protected Singleton() { }   
//
 封闭客户程序的直接实例化
        
public 
static Singleton Instance    
        {
            
get
            {
                
if (instance == 
null)
                    instance = 
new Singleton();
                
return instance;
            }
        }
    }

  在多线程环境下存在缺陷, 最终将会保存最后创建的那个实例

 

2. 改进后的多线程Singleton

class Singleton
    {
        
private Singleton() { }
        [ThreadStatic]
        
public 
static 
readonly Singleton Instance = 
new Singleton();
    }

 

3. 线程计数器

public 
class ThreadCounter
    {
        
private ThreadCounter() { }
        
public 
static 
readonly ThreadCounter Instance = 
new ThreadCounter();
        
private 
int value;
        
public 
int Next { 
get { 
return ++value; } }
        
public 
void Reset() { value = 
0; }
    }

 

4. 调用代码

  ThreadCounter.Instance.Next

 

 

转载地址:http://vtucx.baihongyu.com/

你可能感兴趣的文章
zabbix 批量web url监控
查看>>
MongoDB CookBook读书笔记之导入导出
查看>>
shell如何快速锁定所有账号
查看>>
HTML 5实现的手机摇一摇
查看>>
此博客不再发表对自己私事的看法
查看>>
导致Asp.Net站点重启的10个原因
查看>>
【PMP】Head First PMP 学习笔记 第一章 引言
查看>>
抓住云机遇编排工作 搞定复杂IT工作流
查看>>
MYSQL的longtext字段能放多少数据?
查看>>
MTK 平台上如何给 camera 添加一种 preview size
查看>>
云计算最大难处
查看>>
关于数据分析思路的4点心得
查看>>
Memcached安装与配置
查看>>
美团数据仓库的演进
查看>>
SAP被评为“大数据”预测分析领军企业
查看>>
联想企业网盘张跃华:让文件创造业务价值
查看>>
记录一次蚂蚁金服前端电话面试
查看>>
直播源码开发视频直播平台,不得不了解的流程
查看>>
Ubuntu上的pycrypto给出了编译器错误
查看>>
聊聊flink的RestClientConfiguration
查看>>