摘要: 虽然.NET框架号称永远不会发生内存泄漏,原因是引入了内存回收机制。但在实际应用中,往往我们分配了对象但没有释放指向该对象的引用,导致对象永远无法释放。最常见的情况就是给对象添加了事件处理函数,但当不再使用该对象时却没有将该函数从对象的事件handler中减掉。另外如果分配了非托管内存,而没有手工释 阅读全文
posted @ 2020-12-17 20:58 CNHK19 阅读(974) 评论(0) 推荐(0)
摘要: 作者:姚冬链接:https://www.zhihu.com/question/24263552/answer/27216798来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 在互联网不太普及的时代,很多软件公司还是会发布离线更新包,这种更新包其实就是个安装程序,只是安 阅读全文
posted @ 2020-12-15 13:34 CNHK19 阅读(1418) 评论(0) 推荐(0)
摘要: WebRTC协议栈 图一 WebRTC stack TURN的全称为Traversal Using Relays around NAT,是STUN/RFC5389的一个拓展,主要添加了Relay功能。如图一所示,TURN协议是建立在UDP协议之上的一个应用层协议。如果一台主机处于NAT后面,那么在一 阅读全文
posted @ 2020-11-20 20:13 CNHK19 阅读(1583) 评论(0) 推荐(0)
摘要: 在现实Internet网络环境中,大多数计算机主机都位于防火墙或NAT之后,只有少部分主机能够直接接入Internet。很多时候,我们希望网络中的两台主机能够直接进行通信(即所谓的P2P通信),而不需要其它公共服务器的中转。由于主机可能位于防火墙或NAT之后,在进行P2P通信之前,我们需要进行检测以 阅读全文
posted @ 2020-11-20 14:17 CNHK19 阅读(1738) 评论(0) 推荐(0)
摘要: 异步调用是CLR为开发者提供的一种重要的编程手段,它也是构建高性能、可伸缩应用程序的关键。在多核CPU越来越普及的今天,异步编程允许使用非常少的线程执行很多操作。我们通常使用异步完成许多计算型、IO型的复杂、耗时操作,去取得我们的应用程序运行所需要的一部分数据。在取得这些数据后,我们需要将它们绑定在 阅读全文
posted @ 2020-11-20 09:37 CNHK19 阅读(842) 评论(0) 推荐(0)
摘要: 介绍 Raft是一种为了管理复制日志的一致性算法。为了提升可理解性,Raft 将一致性算法分解成了几个关键模块,例如领导人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。同时,raft还提供了集群变更的应对方法。 Raft独有特性: 强领导者:日志条目只从领导者发送 阅读全文
posted @ 2020-10-12 11:01 CNHK19 阅读(290) 评论(0) 推荐(0)
摘要: 我司高产作家唐刘老师的小猪佩奇版“深入浅出 Raft”第四弹来啦~~前几篇内容戳这里 ↓ 在猪爸爸的努力下,泥坑银行终于能高效正常的运作了,但猪爸爸一直比较担心海盗岛那边的网点,因为他总是担心跨海的通讯会因为极端情况出现问题。果不其然,一个雷雨交加的晚上,海盗岛的发电站被击中,整个岛处于停电状态,海 阅读全文
posted @ 2020-10-12 10:57 CNHK19 阅读(298) 评论(0) 推荐(0)
摘要: 前记 第一次听到Reactor模式是三年前的某个晚上,一个室友突然跑过来问我什么是Reactor模式?我上网查了一下,很多人都是给出NIO中的 Selector的例子,而且就是NIO里Selector多路复用模型,只是给它起了一个比较fancy的名字而已,虽然它引入了EventLoop概 念,这对我 阅读全文
posted @ 2020-10-09 10:28 CNHK19 阅读(456) 评论(0) 推荐(0)
摘要: 讲到高性能IO绕不开Reactor模式,它是大多数IO相关组件如Netty、Redis在使用的IO模式,为什么需要这种模式,它是如何设计来解决高性能并发的呢? 最最原始的网络编程思路就是服务器用一个while循环,不断监听端口是否有新的套接字连接,如果有,那么就调用一个处理函数处理,类似:while 阅读全文
posted @ 2020-10-09 10:26 CNHK19 阅读(173) 评论(0) 推荐(0)
摘要: 首先声明一个委托。 delegate void SetTextCallback(string text); 然后再写一个事件。 private void SetInfo(string text) { /// 这个事件是委托执行,在线程中无法直接控制窗体控件属性 /// 用于在线程中在listBox_ 阅读全文
posted @ 2020-09-25 09:47 CNHK19 阅读(208) 评论(0) 推荐(0)