作者: xuanskyer
2021 年底来扯扯淡(下)
日子一天天的过去,转移重心后的生活和工作都仍然在继续。
尝试 像 年底来扯扯淡(上)结尾说的那样的方式,遵从自己思考判断来做决定,而不是一味的为了工作里各种各样的公司战略、KPI、绩效而委曲求全着做一些其实毫无意义的事情。吃了很多年的饼之后,我终于意识到并且坚信:这些人并不是一个好的画饼师傅,而绝大数情况下,他们自己也心知肚明。
而在意识到这个情况之后,我也突然发现之前多年的工作里,一直是“偷懒”式工作,很长的时间里,甚至到了自我感动的地步。
那时每天都很忙:
哇啊,公司又有了新的项目孵化目标了,加油啊,赶紧开发部署;
是啊,领导又有了新的方向想要尝试了,等不了,赶紧加班上线;
对啊,产品叕有了新的想法急需验证了,最终版,无脑迭代上架。
2021 年底来扯扯淡(上)
想想2021年马上就要过去了,时间真快啊!
仔细回顾下今年都经历了啥呢?好像大的分界点是从年中6月份项目组解散开始的吧。如果是在小说里,这个一定是一个很好的故事展开线,哈哈。
6月份的时候,在大家刚结束了上周末的一次常规加班之后的一个周一,领导不出所料的突然宣布:项目组原地爆炸。现在我回过头来看感觉很魔幻。那种感觉就像,你们一队人正在和对面开团:
我方斧王先手果断跳吼直接控住对面所有人!
宙斯直接开大!
sven开大跳上去,准备团灭对面!
然后,停电了!!!
沉默了一会后,大家揪着的一颗心总算了放了下来
golang断言:一个蛋疼的处理场景
这一切都来源于一个蛋疼的需求场景处理:
因为历史原因,一个需要用到的JSON数据被整个缓存进Redis的一个key中,大概如下:
现在要做的是: address 里的每个元素的 url 字段需要更新。
现在知道的是:address 的值 是一个数组,数组的每个元素是一个map[string]interface{} 类型,map里的元素除了 “url”: “xxx.mp4”, 其他的数量不确定
Continue reading golang断言:一个蛋疼的处理场景并发安全&锁&原子操作&CAS&MESI
很长时间以来,对于锁&原子操作这些概念术语总是理解的很模糊,知其然不知所以然。
想尽量的理清它们在通常意义上在大家口中所指的含义,以后沟通或者看相关的文章都可以节省一些成本。
基于这些搜罗了一些这方面的博客和文章,加上自己的理解,基于 Golang 对于其中的一些基础概念和关系的总结。
一图胜千言:
Continue reading 并发安全&锁&原子操作&CAS&MESILinux 下关于: select、poll、epoll
现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。
操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。
为了保证用户进程不能直接操作内核(kernel),保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。
针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为用户空间。
Continue reading Linux 下关于: select、poll、epoll关于IO :同步、异步、阻塞、非阻塞
An asynchronous I/O operation does not cause the requesting process to be blocked;
两者的区别就在于synchronous IO做”IO operation”的时候会将process阻塞。
按照这个定义,之前所述的blocking IO,non-blocking IO,IO multiplexing都属于synchronous IO。
Continue reading 关于IO :同步、异步、阻塞、非阻塞