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

做网站要什么步骤建设银行网站图片

做网站要什么步骤,建设银行网站图片,网站抓取qq,交流做病理切片的网站C# --- 单例类错误初始化 没有释放资源导致线程泄漏Background原因分析问题一: 错误初始化(使用了箭头函数)问题一: 没有Dispose资源Background 背景: service A的其中一个Api会向mq发送消息问题:线上发现这个服务经常…

C# --- 单例类错误初始化 + 没有释放资源导致线程泄漏

  • Background
  • 原因分析
    • 问题一: 错误初始化(使用了箭头函数)
    • 问题一: 没有Dispose资源

Background

  • 背景: service A的其中一个Api会向mq发送消息
  • 问题:线上发现这个服务经常有几百个线程在同时运行,怀疑是发生了线程泄漏
  • 什么是线程泄漏:代码产生了大量的不应该出现的线程,导致占用过多资源,严重影响系统性能

原因分析

经过排查发现了一下问题代码

public class Dispatch
{public static Dispatch Instance => new Dispatch();private readonly Sender senderpublic Dispatch() { sender = new Sender();}
}public class Sender : IDisposable
{private readonly Task _recoveryTask;public Sender() { recoveryTask = Task.Factory.StartNew(new Action(this.ReceoveryTaskEntry), TaskCreationOptions.LongRunning)}private void RecoveryTaskEntry() {while (!this.Disposed){//impl}}public void Dispose() {_recoveryTask.Dispose()GC.SuppressFinalize(this); // 阻止终结器调用}
}

问题一: 错误初始化(使用了箭头函数)

public static Dispatch Instance => new Dispatch();//等价于
public static Dispatch Instance() 
{return new Dispatch();
}

以上代码在 Dispatch.Insatnce被调用时每次都会新建一个Dispatch实例,而Dispatch的构造方法里会创建并运行一个新的线程,也就是说每个requets都会创建一个新的线程

正确的初始化:保证单例类只有一个实例

public static Dispatch Instance { get; } = new Dispatch();

问题一: 没有Dispose资源

在Dispatch中没有dispose sender, 导致线程没有被释放

public class Dispatch
{public static Dispatch Instance => new Dispatch();private readonly Sender senderpublic Dispatch() { sender = new Sender();}
}

正确实现:在Dispose中释放资源

public class Dispatch
{public static Dispatch Instance => new Dispatch();private readonly Sender senderpublic Dispatch() { sender = new Sender();}public void Dispose() {sender.Dispose()//....}
}
http://www.dtcms.com/wzjs/544522.html

相关文章:

  • 北京ifc大厦商城类网站怎么优化
  • 赣州热门网站wordpress右下角添加欢迎弹窗
  • 建设网站哪些公司好wordpress 模板丢失.
  • 优秀的设计网站有哪些罗湖网页设计
  • 举报网站建设公司怎么自建一个网站
  • 杭州网站维护公司网站开发实例教程
  • 手机网站设计手机壳尺寸一览表网站建设绵阳辉煌电商
  • 网站设计网站开发优化seo课培训
  • 网站报价模板广东高端网站建设
  • 网站的总体方案与功能设计建立网站的链接结构有哪几种形式?简述其各自的优缺点
  • 扬州市建设厅网站如何做网站调研
  • 个人相册网站建设报告公司网站建站哪个系统好用
  • 中国建设银行信用卡官网站首页自己做网站教学视频教程
  • 做网站一年多少钱网页设计代码有主页面吗
  • ps做网站导航条一二三四视频社区在线一中文
  • 长春精神文明建设网站支付宝支持12306网站建设
  • 比百度更好的网站wordpress模板结构
  • 建设网站可以赚钱吗域名大全 二级域名
  • vps租用湖南网站营销seo哪家好
  • 制作一个私人网站怎么申请域名深圳网站建设高端设计
  • 淘宝联盟的购物网站怎么做手机怎么免费建设网站
  • 如何加强省市网站建设郑州电商网站设计
  • 网站建设内部问卷动易网站 青春
  • 网站开发及流行框架wordpress crm 插件
  • 网站建设实训实训心得微网站建设的现状
  • 国内投资咨询网站 html模板wordpress怎么安装访问
  • 哪个网站做的简历比较好wordpress社交分享
  • 网店网站设计网站开发如何避免浏览器缓存的影响
  • 网站开发就业前景怎么样徐州库云平台
  • 韩国网站加速器想自己在家做外贸网站