红烧土豆泥 红烧土豆泥
4年前
软件设计模式-创建型模式之工厂进阶版
简介:所谓工厂模式,创建一个对象的接口,让子类决定实例化哪一个工厂类,使其创建过程延迟到了子类。所谓的万能工厂类,通过反射调用的方式,获取到子类对象,并实例化返回,此外本案例还通过重载的方式,允许了有参和无参两种获取到实例的方式。language/@author:demo@date:2021/8/7@describe:/public
Wesley13 Wesley13
3年前
IO模型(BIO,NIO,AIO)及其区别
BIO:同步阻塞IONIO:同步非阻塞IOAIO:异步非阻塞IO先弄清楚同步、异步,阻塞、非阻塞概念。io操作分为两部分,发起io请求,和io数据读写。阻塞、非阻塞主要是针对线程发起io请求后,是否立即返回来定义的,立即返回称为非阻塞io,否则称为阻塞io。同步、异步主要针对io数据读写来定义的,读写数据过程中不阻塞线程称为异步io
Stella981 Stella981
3年前
PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo)
PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展、PHP的mysqli扩展、PHP数据对象(PDO),下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案。PHP的MySQL扩展是设计开发允许php应用与MySQL数据库交互的早期扩展。MySQL扩展提供了一个面向过程的接口,并且是针对MySQL4.1.3或者更早版
Stella981 Stella981
3年前
Excel催化剂开源第8波
在VSTO开发过程中,因其和普通的Winform开发有点差别,具体细节笔者也说不清楚,大概是VSTO的插件是寄生在Excel中,不属于独立的进程之类的,其异步方法调用时,未能如Winform那样直接用awaitasync异步方法就结束,仍需要再作简单的处理。使用场景在Excel上直接使用异步方法,貌似有上述提及的问题,不像Winform程序
Wesley13 Wesley13
3年前
Java中多个ifelse语句的替代设计
今天在改老代码的过程中,亲眼见证了一段30个ifelse嵌套的代码...然后搜集了一些资料做了以下简单整理。概述ifelse是任何编程语言的重要组成部分。但是我们编写了大量嵌套的if语句,这使得我们的代码更加复杂和难以维护。接下来,让我们探索如何简化代码的中的ifelse语句写法。案例研究我们经常遇到涉及很
Stella981 Stella981
3年前
Sentinel源码解析二(Slot总览)
写在前面本文继续来分析Sentinel的源码,上篇文章对Sentinel的调用过程做了深入分析,主要涉及到了两个概念:插槽链和Node节点。那么接下来我们就根据插槽链的调用关系来依次分析每个插槽(slot)的源码。默认插槽链的调用顺序,以及每种类型Node节点的关系都在上面文章开头分析过Sentinel源码解析一NodeSelecto
Wesley13 Wesley13
3年前
UDT协议实现分析——UDT Socket的创建
UDTAPI的用法在分析连接的建立过程之前,先来看一下UDTAPI的用法。在UDT网络中,通常要有一个UDTServer监听在某台机器的某个UDP端口上,等待客户端的连接;有一个或多个客户端连接UDTServer;UDTServer接收到来自客户端的连接请求后,创建另外一个单独的UDTSocket用于与该客户端进行通
Stella981 Stella981
3年前
Redis(二十):Redis数据过期和淘汰策略详解(转)
原文地址:https://yq.aliyun.com/articles/257459背景Redis作为一个高性能的内存NoSQL数据库,其容量受到最大内存限制的限制。用户在使用Redis时,除了对性能,稳定性有很高的要求外,对内存占用也比较敏感。在使用过程中,有些用户会觉得自己的线上实例内存占用比自己预想的要大。事实上,实例中的内存除
Wesley13 Wesley13
3年前
MAC电脑必装神器!秒速让效率提高N倍!
↑关注星标 ~从此不迷路~今天给大家分享一款mac电脑高效办公神器——Magnet。它是一款多任务处理、快速整理工作空间的高效办公神器。当你每次将内容从一个应用切换到另一应用时,或者需要并排比较数据时,或是以其它方式进行多任务处理时,你需要妥善放置所有的窗口。Magnet让这一过程清爽又简单。