The latest posts

2021 年底来扯扯淡(上)

想想2021年马上就要过去了,时间真快啊!
仔细回顾下今年都经历了啥呢?好像大的分界点是从年中6月份项目组解散开始的吧。如果是在小说里,这个一定是一个很好的故事展开线,哈哈。
6月份的时候,在大家刚结束了上周末的一次常规加班之后的一个周一,领导不出所料的突然宣布:项目组原地爆炸。现在我回过头来看感觉很魔幻。那种感觉就像,你们一队人正在和对面开团:
我方斧王先手果断跳吼直接控住对面所有人!
宙斯直接开大!
sven开大跳上去,准备团灭对面!
然后,停电了!!!
沉默了一会后,大家揪着的一颗心总算了放了下来

Continue reading 2021 年底来扯扯淡(上)

golang断言:一个蛋疼的处理场景

这一切都来源于一个蛋疼的需求场景处理:

因为历史原因,一个需要用到的JSON数据被整个缓存进Redis的一个key中,大概如下:

现在要做的是: address 里的每个元素的 url 字段需要更新。

现在知道的是:address 的值 是一个数组,数组的每个元素是一个map[string]interface{} 类型,map里的元素除了 “url”: “xxx.mp4”, 其他的数量不确定

Continue reading golang断言:一个蛋疼的处理场景

并发安全&锁&原子操作&CAS&MESI

很长时间以来,对于锁&原子操作这些概念术语总是理解的很模糊,知其然不知所以然。

想尽量的理清它们在通常意义上在大家口中所指的含义,以后沟通或者看相关的文章都可以节省一些成本。

基于这些搜罗了一些这方面的博客和文章,加上自己的理解,基于 Golang 对于其中的一些基础概念和关系的总结。

一图胜千言:

Continue reading 并发安全&锁&原子操作&CAS&MESI

Linux 下关于: select、poll、epoll

现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。

操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。

为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。

针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为用户空间。

Continue reading Linux 下关于: select、poll、epoll