- 博客(13)
- 收藏
- 关注
原创 go实现时间轮(timewheel)算法(简易版)
时间轮算法(Time Wheel Algorithm)是一种常用于处理定时任务的数据结构和算法。它可以高效地管理和执行一系列定时任务,特别是在需要频繁添加、删除和执行任务时表现良好。时间轮算法主要用于实现定时器功能,比如在操作系统、网络通信、任务调度等领域。
2024-08-19 00:41:32
246
原创 go实现依赖倒置(简易版)
依赖倒置是一种通用的软件设计原则,不要让高层依赖底层,而要让底层依赖高层的抽象。这个是我根据别人的博客里面的概念理解实现的,如有谬误欢迎指出。
2024-08-19 00:40:19
139
原创 go实现状态机(简易版)
有限状态机(英语:finite-state machine,缩写FSM)又称有限状态自动机(英语:finite-state automaton,缩写FSA),简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学计算模型。总体定义和实现比较简单,一般状态机结合定时任务或者消息队列触发可能会比较好一点,也可能是手动触发的状态轮转。
2024-08-16 02:43:58
318
原创 go比较两个字节切片大小
go中bytes包下面有用的方法还是挺多的,比如bytes.Buffer是一个字节缓冲区,提供了许多字节slice操作方法的封装,可以加快处理速度(貌似是这样,以后理解深刻了再补充吧)ps:另有strings.compare方法可以比较两个字符串大小,如有需要自取。
2024-08-16 00:56:13
156
原创 mysql使用event创建定时任务
这两天遇到一个任务,本来说是今天上的,结果挪到了6月份,这个就有点尴尬了,代码做了一些小的调整,从而能够保证适配新老调整,但是突然发现数据也需要到期调整,临时想到了一种方案,就是到时间就运行mysql的定时任务来更新数据,然后到时候我检查一下数据的状态就可以了,这样我就可以在当天稳稳的喝茶了,哈哈,接下来就说说如何创建吧。ON SCHEDULE AT '2020-06-01' --替换为具体的时间戳,而不使用相对时间创建定时任务。--通过这三条指令查看任务创建时指定的时间戳的格式,
2024-08-03 20:43:36
299
原创 golang读写excel
注:f.SetSheetRow("Sheet1", startCell, &data[i]),将sheet的行与一行数据关联起来直接插入即可,不需要调用f.SetCellValue()一个格子一个格子的插入数据,比较麻烦。1、excelize库安装(使用go modules)2、读excel文件。3、写excel文件。
2024-08-03 09:57:06
216
原创 如何阅读源码--关于阅读代码的一些小思考
在阅读代码的时候可以参看别人的阅读方式和理解方式,抓大放小,对于一些细节性的代码先放下,理解主体的代码、调用方式和组织方式。在理解了主体的基础上,阅读代码的时候可以先忽略掉内部的调用关系,在没有注释的时候,一般根据函数名和关键词即可理解了被调用的函数功能,然后在理解了主体函数的功能点后,可以借助ide切入被调用函数,查看其功能如何用代码实现的。最后,如果有时间的话,可以基于自己对代码的理解,写一个小demo(造轮子)来实现相关的功能,加深自己的理解,深化自己的技术体系。
2024-08-03 09:55:46
194
原创 golang实现协程池
go协程池可以看成一个被初始化的固定大小的协程循环读取函数队列,获取是否有可供调用的函数队列,如果有,则协程池中的一个协程调用并执行该函数,talk is cheap,show me the code。好了,整体代码介绍完了,希望你能对协程池有个比较简单的了解,也可以基于此代码,丰富一下逻辑。测试用的代码如下所示。
2024-08-03 09:52:51
461
原创 golang 借助于内置sort.slice包实现排序
golang使用内置sort包实现排序使用sort.Slice()方法实现数组的排序操作系统和开发环境sort.Slice()介绍实现(直接上代码了)运行结果截图使用sort.Slice()方法实现数组的排序使用内置的sort.slice接口实现数组的排序是我目前所知的比较简单的一种排序方式,可以很快的实现数组的排序,个人比较推崇。我所知道的另外一种基于sort包的排序,需要首先写一个结构体...
2019-04-11 09:11:17
32477
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人