自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

十八

Focus Coding

  • 博客(43)
  • 资源 (3)
  • 收藏
  • 关注

原创 redis加锁实现方式

原子操作可以是一个步骤,也可以是多个步骤,但是其顺序不可以被打乱,也不可以被切割而只执行其中的一部分(不可中断性)。不论是多核还是单核,具有原子性的量,同一时刻只能有一个线程来对它进行操作。针对问题2:针对第二个问题,在循环请求获取锁的时候,加入睡眠功能,等待几毫秒在执行循环。如果key不存在,则将key设置为value,如果key已存在,则SETNX不做任何操作。原子操作是指不会被线程调度机制打断操作,这种操作一旦开始,就一直到结束,将操作视作一个整体,资源在该次操作中保持一致,这是原子性的核心特征。

2024-02-08 15:48:50 1658

原创 前缀树(Trie):理解基本性质与应用

前缀树,也称为字典树,是一种常见的数据结构,用于高效存储和检索字符串集合。本文将介绍前缀树的基本性质、示例代码、复杂度分析以及应用场景。

2023-09-10 10:27:23 245

原创 mac电脑做为开发机的一些初始化操作

拷贝此目录下面的数据到新机器的此目录上。设置homebrew环境变量。

2023-09-09 10:21:27 152

原创 深入理解 Go 语言中的 iota

通过使用 iota,我们可以轻松创建连续递增的常量值,从而提高代码的可读性和可维护性。

2023-08-26 12:12:25 842

原创 [gin框架]深入解析 CleanPath 方法:消除 URL 路径中的多余元素

在 Web 开发中,处理 URL 路径是一项常见的任务。但由于用户输入、路由规则等原因,URL 路径可能会包含多余的斜杠、点号.和点点…等元素,导致路径不规范。为了确保正确的路径解析和处理,httprouter 实现了CleanPath方法。本文将深入解析CleanPath方法的实现原理,重点关注其处理逻辑和处理边界情况的技巧。

2023-08-18 16:50:41 278

原创 Go语言中关键字type的多重应用场景详解

在Go中,我们可以使用type来定义结构体,这是一种自定义的复合数据类型,可以包含多个字段。同时,我们可以为这些结构体定义方法,以便在结构体上执行特定的操作。age inttype OtherMutex Mutex //OtherMutex是一个新类型,不再是Mutexm := &OtherMutex{} //注意,OtherMutex不具有Lock和Unlock方法m.Lock()type关键字还用于定义接口,接口是一种抽象的类型,用于描述对象的行为。

2023-08-11 17:52:50 793

原创 集中精力做好一件事

想法

2022-08-05 10:28:17 84 1

原创 记一次不间断空格引入的bug

空格

2022-06-01 16:08:59 502

原创 同网段和跨网段主机通信原理详解[待完善]

主机通信

2022-06-01 16:07:15 1212

原创 如何初始化机器的bmc

机器出厂出厂时,厂商会把bmc的账户、密码写到固件网络规划规划机器对应的内网ip,带外ip机器加电机器加电后,bmc启动时,会自动启动dhcp,此时程序通过ipmi为机器注入初始化信息,带外信息。...

2022-05-09 21:24:43 1244

原创 路由器和交换机的区别

路由谋短,交换求快。交换机工作于数据链路层,用来隔离冲突域,连接的所有设备同属于一个广播域(子网),负责子网内部通信。路由器工作于网络层,用来隔离广播域(子网),连接的设备分属不同子网,工作范围是多个子网之间,负责网络与网络之间通信。工作层次不同:交换机主要工作在数据链路层(第二层)路由器工作在网络层(第三层)。转发依据不同:交换机转发所依据的对象时:MAC地址。(物理地址)路由转发所依据的对象是:IP地址。(网络地址)主要功能不同:交换机主要用于组建局域网,而路由主要功能是将由交换机

2020-06-15 11:41:57 237

原创 两层网络和三层网络的区别

二层网络仅仅通过MAC寻址即可实现通讯,但仅仅是同一个冲突域内;三层网络则需要通过IP路由实现跨网段的通讯,可以跨多个冲突域。核心层,汇聚层和接入层汇聚层:将多个端口虚拟到一个虚拟端口上参考文档:二层网络结构和三层网络结构的对比...

2020-06-15 11:38:02 3329

原创 《go语言圣经》前言

产生背景语言借鉴很多事务都不是空穴来风的,很多是否都是对过去事务的一种衍变,更多的是在借鉴过往的经验,通过结合当下的场景,使其有个极大的优化。C

2020-06-12 18:00:51 156

原创 go语言学习第一步

先把《go语言圣经》从头到尾读完,不漏一字,以前学习是最大的缺点就是蜻蜓点水,总以为自己会了,其实并未掌握其精髓。所以这次一定要每学习一章要有个总结,输出自己有哪些新的认知。...

2020-06-08 17:05:40 149

原创 把一件事做好了,比你去做十件事要更高

过去时间一直很困惑,就是想是否要在技术上有足够的精进,总认为搞技术很难实现财富自由,所以一直想炒股,但是无奈于,本金又不多,又不能去借杠杆,所以下定决心,这两三年的时间,还是先专注做技术吧,积累一定的本金再去决定什么时候开始炒股,做量化投资。既然回归到做技术了,就有一个选择,是否要让自己的知识面足够宽,因为很多时候面试的时候,都会涉及很多的东西,最后想了想,因为自己投入的精力和时间有限,所以很难把所有东西都做好,所以说还是先从最常用的下手,把其搞精,既然一件事情都能够做的足够好,其他的涉及到的东西也只是时

2020-06-08 16:54:03 143

原创 rang循环取元素地址时无法取得正确的指针地址

创建指针数组的时候, range 循环容易采的坑。错误代码const max = 3func main() { number := [max]int{5, 6, 7} var ptrs [max]*int //指针数组 //将number数组的值的地址赋给ptrs for i, x := range &number { ptrs[i] = &x } for i, x := range ptrs { fmt

2020-05-29 10:50:10 120

原创 CIDR相关概念

无类别域间路由(Classless Inter-Domain Routing、CIDR)是一个用于给用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法网段的理解最小网段值,最大网段值,这之间的区间范围二进制表示1000 = 2的3次方 = 8<< 有符号左移位将运算数的二进制整体左移指定位数,低位用0补齐1<<4 = 10000(二...

2020-02-22 18:07:25 1769

原创 云计算相关博客

钱五哥の自由空间

2019-12-31 10:47:03 274

原创 优质网站合集

源码共享opendev(共享开发源码)

2019-12-31 10:40:59 1216

原创 IO多路复用select/poll/epoll

背景 多线程实现网络复用,用户态实现开销较大,通过内核机制降低开销selectselect(max+1, &rset, null, null, null)将用户态数据拷贝到内核态劣势1024 bitmapfdset 不可重用用<–>内核开销o(n) 复杂度pollpoll(pollfds, 5, 50000)将用户态数据拷贝到内核态struct po...

2019-11-24 11:28:11 95

原创 go中的Stringer接口

转自自定义接口输出实现string方法

2019-11-05 18:07:23 233

原创 嵌入式linux:make 参数 ARCH与CROSS_COMPILE

转自ARCH即architecture,就是选择编译哪一种cpu architecture,也就是编译arch/目录下的哪一个子目录。如指定make ARCH=arm就是编译arch/arm下的代码。如果不指定,make将使用本机(用什么机器编译就是什么)的cpu作为缺省ARCH.注意:arch/arm下不但有arm体系架构特有的代码,还有arm特有的kconfig,也就是配置选项,所以在ma...

2019-10-29 10:18:49 1839

原创 qemu参考文档

华为qemu讲解uefi下载qemu软件包升级qemu版本下载busybox下载

2019-10-26 09:26:22 1001

原创 chroot命令详解

转自

2019-10-15 16:00:12 288

原创 arm 镜像构建

arm chroot

2019-10-15 15:42:36 1036

原创 range map 为何无序

原文 Go maps in action中文

2019-10-11 18:10:25 153

原创 golang 经典参考书

煎鱼的迷

2019-10-11 18:10:05 1448

原创 panic详解

panic 制造宕机recover 接受宕机信息panic 产生宕机后,之前的defer继续执行完,之后的代码和defer不再执行package mainimport "fmt"func main() { defer func() { if info := recover(); info != nil { fmt.Println("宕机", info) } }()...

2019-10-11 16:20:17 1419

原创 golang map 的底层实现

hashmap底层实现

2019-10-11 16:11:39 232

原创 golang之map详解

待更新

2019-10-11 15:44:16 611

原创 golang源码解读

我的架构师之路】- golang源码分析之channel的底层实现Go 源码学习之–net/http

2019-10-11 15:13:19 214

原创 beego源码解读

待完善

2019-10-11 15:11:49 180

原创 引入bug错误记录【时刻警醒】

版本上线时 devops 区分大小写 版本号 v和V 错误代码更新 预发代码没有更新 测试时未测到潜在的bug修改原代码时多删除一行代码 并未对修改代码处的周边功能做相应测试打tag上线时未将master代码合并到此分支提交代码时未将测试代码注销提交代码时未提交新增文件变量命名时多$ 如 $$name 未发现造成调用未命名变量使用root用户修改预发环境代码未及时将代码合并...

2019-10-11 10:12:13 166

原创 每日精进

每天不可懒惰,每天进步一点点8.152019.8.14链表栈顺序表栈2019年

2019-08-14 18:12:24 97

原创 链表头结点存在的意义

1、防止单链表是空的而设的.当链表为空的时候,带头结点的头指针就指向头结点.2、是为了方便单链表的特殊操作,插入在表头或者删除第一个结点.这样就保持了单链表操作的统一性/链表的 头点 插入法,即从第一个节点的位置 插入链表func (l *List) Prepend(value interface{}) { node := NewNode(value) if l.Len() == 0 ...

2019-08-12 20:43:21 1533

原创 第四章 vim文本编辑

模式i 插入模式扩展模式v 可视模式/ 查找维度单词、行、全文命令行模式定位文末 shift+g定位文首 gg定位行末 shift+4定位行首 shift+6定位单词末定位单词首删除当前单词删除当前行 dd删除范围 v模式下操作删除到文末​...

2019-05-04 11:15:46 59

原创 nginx基础配置

server { listen 80; server_name ; charset utf-8; access_log ; error_log ; location / { port_in_redirect on; proxy_set_header Host $host; proxy_set_header X...

2019-03-19 10:55:35 109

原创 线上部署脚本

!/bin/bash#编译脚本的原理是将编译结果放到output目录中,这个样例模版提供一个产生静态资源的最基本的编译脚本,对于特殊的需求请酌情考虑1、内容放到 output#########用户修改部分readonly DIR_NAMES=”index.php README.md” #要拷贝到发布目录的文件或 ...

2018-08-13 20:01:37 359 1

原创 斐波那契数组构造

&lt;?php/** * * 斐波那契数值计算 * @param int $pos 位置 */function fb ($pos){ if ($pos == 1 || $pos == 2) { return 1; } return fb($pos - 1) + fb($pos - 2);}/** * * 构造肥波捏那数组 *...

2018-04-22 12:15:06 315

原创 静态查找算法

静态查找顺序查找/*** Common search.** @param array $arr* @param mixed $item** @return int*/public function search(array $arr, $item){ for ($i = 0; $i &lt; count($arr); $i++) { if ...

2018-04-22 11:25:54 809

计算机程序语言08,09年

计算机复试题c语言08年和09年还有复试心得。

2011-03-18

数字电子钟Proteus 7 Professional制作

数字电子钟使用Proteus 7 Professional制作,有定时功能,设定时间功能。

2010-11-26

超市管理系统课程设计c#

超市管理系统课程设计,使用c#开发。并附有课程设计报告。

2010-11-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除