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

csharp设计方法


public class hugryman

私有构造

private hugryman()

私有静态只读实例化

private static readonly hugryman _hugryman=new hugryman();

公有静态读取方法

public static hugryman()

return _hungryman 

多次获取的是同一个实例

gethashcode发现是同一个对象

数值一样



缺点 

一开始就实例化 浪费性能




改懒汉式

layman 

私有构造

私有静态字段

private static _layman 

公有静态读取同时实例化

在getlazyman里面实例化

null的时候创建  防止多次实例化

(都要静态)



缺点  

会重复创建   

如果多个程序同时进入,会实例化多次

重复实例化的缺点

改进方法:

var obj=new object()

lock(obj)

{

}

花括号的内容只允许一个线程进行

 

例子

private static layman _layman 

public static layman getlazyman()

lock(o){

if (_layman==NULL)

{_lazyman=new lazyman()}

}

return _layman 

 

lock实际上是

monitor.enter()

monitor.exit()

 

防止指针重排的方法

volatile 



饿汉式的改造方法

静态内部类

hugrymanstatic

private hungrymanstatic()

private static class innerclass()

{

var _hungrymanstatic=new hungrymanstatic()

}

public static Gethungrymanstatic()

{

return _hungrymanstatuc 

}

静态内部类  只在类加载的时候创建一次实例

不会浪费资源



 

相关文章:

  • Qt--信号槽发送QVector
  • 专注于PLC数据采集MES交互解决方案
  • Redis集群模式之Redis Cluster(3)
  • 【0.2 漫画操作系统原理】
  • 从0开始学习R语言--Day23--稳健回归
  • volka烹饪常用英语
  • Salesforce 推出Marketing Cloud Next营销云
  • Docker 部署 PostgreSQL 指南
  • 0x-5-ORA-03113-ORA-01081-记一次删归档改spfile-开实例
  • Vue3中v-bind指令用法详解
  • 论文略读: CITYANCHOR: CITY-SCALE 3D VISUAL GROUNDING WITH MULTI-MODALITY LLMS
  • 渲染进阶内容——机械动力的渲染(1)
  • 小程序跳转链接实战:https://wxaurl.cn/、weixin://dl/business/ 跳转与明文 URL Scheme 生成指南
  • MaxCompute的Logview分析详解
  • K8S 专栏 —— Pod 篇
  • 人工智能学习20-Pandas-自定义的函数
  • 单片机电路设计
  • 剖析电商搜索要点并基于Es+Redis模拟电商搜索行为
  • 滚珠螺杆的预紧间隙如何调整?
  • python基础举例
  • 万维建设网站/成人短期培训学校
  • 成都学网站建设费用/广告主平台
  • 外贸移动商城网站建设/网络推广免费平台
  • 中山最好的网站建设公司哪家好/上海百度推广客服电话多少
  • 德州建设信息网站/西安seo关键词查询
  • 专门做二手书的网站/制作网页需要多少钱