摘要:
有些场景使用多维哈希来存储数据,时间复杂度恒定,简单粗暴好用。这里记录一下。 如下是三维哈希的简单示意图,建议层数不要太多,否则时间久了,自己写的代码都不认识。 下图是三维哈希在内存的存储形式,hashmap嵌套了3层。图里一层数组存放entry和链表next指针,每个节点里面都存放一个数组,数组存 阅读全文
摘要:
收到一个任务,所有http的handler要对入参检查,防止SQL注入。刚开始笨笨的,打算为所有的结构体写一个方法,后来统计了下,要写几十上百,随着业务增加,以后还会重复这个无脑力的机械劳作。想想就low。 直接做一个不定参数的自动检测函数不就ok了么? 磨刀不误砍柴工,用了一个下午的时间,调教出一 阅读全文
摘要:
C#实现的阻塞队列,功能类似GO里的channel。 public class CBlockQueue<T> { private readonly Queue<T> queue = new Queue<T>(); private readonly int maxSize; bool closing; 阅读全文
摘要:
依山傍水房数间,行也安然,坐也安然;一头耕牛半倾田,收也凭天,荒也凭天;雨过天晴驾小船,鱼在一边,酒在一边;路逢骚客问诗篇,好也几言,歹也几言;布衣得暖胜丝绵,新也可穿,旧也可穿;粗茶淡饭饱三餐,早也香甜,晚也香甜;夜归挚友话灯前,今也谈谈,古也谈谈;一觉睡到日三竿,不是神仙,胜似神仙。 阅读全文
摘要:
作者:qingxili 来源:CSDN 原文:https://blog.csdn.net/qingxili/article/details/79870601 版权声明:本文为博主原创文章,转载请附上博文链接! 阅读全文
摘要:
最近在研究K8s,翻到酷壳https://coolshell.cn/ 看着看着发现里面有一篇关于招聘程序员面试的文章,看完很受益。转载收藏一下。 想起刚工作的时候,一个前辈分享的面试经验有核心三点:1,知识的广度深度;2,学习能力;3,解决问题的能力 原文地址:https://coolshell.c 阅读全文
摘要:
启动进程,遇到报错: 分析配置文件内容没有错误。 怀疑可能是文件格式问题,在IDE里面查看,果然是windows格式。IDE里面可以修改,此外在Notepad++里面也可以。截图如下 用Notepad++(v7.5.9)打开配置文件,编辑选项—>文档格式转换—>转为UNIX格式 阅读全文
摘要:
github上的golang双向rpc,基于原生“net/rpc”库实现,可以注册回调。仅支持一个server和一个client交互。 地址:https://github.com/rocket049/rpc2d 公共包: server端代码: 客户端代码: 阅读全文
摘要:
线上服务器,同一个web接口有时需要兼容不同版本的结构体。这种情况思路是使用interface{}接收任意类型数据,结合reflect包处理。 如下,http接口调用者会传入不同的json结构数据(单体结构或切片结构): 兼容不同XXX结构体的方法是使用interface{},接收任意类型数据。 代 阅读全文
摘要:
递归方法,逻辑简洁清晰。这个算法还是很重要的,需要重点记忆理解,面试经常考手写。据说是与傅里叶变换等并称“20世纪十大算法”。https://blog.csdn.net/v_JULY_v/article/details/6127953 快速排序算法的平均时间复杂度是 O(nlogn),最坏情况时间复 阅读全文
摘要:
golang的slice支持func。使用func slice要注意func要完整描述入参出参。 如果需要执行一系列类型相同(入参出参格式相同)的函数,可以动态添加到一个slice里面。range slice顺序执行,也可并发执行,构造匿名goroutine,代码如下。 执行结果截图: 如果想对入参 阅读全文
摘要:
编码时冒出一个问题:在一个协程内部,再创建一个或多个协程,是否会产生依赖关系? 做了一个小实验,这里随笔记录一下经过,备注后续深入研究。 test代码: 运行结果: 可以得出结论:不同于linux里的进程依赖,golang里,协程都是互相独立的,没有依赖(父子)关系。main函数本身也运行在一个go 阅读全文