SF
shangyin's blog
shangyin's blog
注册登录
关注博客
注册登录
主页
关于
RSS
go ctx超时导致资源释放失败
shanyin
2019-10-02
阅读 2 分钟
6k
入参的ctx带有cancel机制。问题在于defer那一行代码,释放资源使用了 DoSomething 的ctx。如果业务操作代码cancel了ctx,或者是执行了耗时操作,而正好 redis.DeleteDeDuplicated 也使用了ctx的cancel机制,那么这个redis锁就无法释放了。
go json数据转发
shanyin
2019-09-10
阅读 6 分钟
2.5k
解决这个问题很简单:把user信息和order信息的json用工具解析得到结构体,然后调用他们的接口得到数据,根据id关联和拼装,最后返回。
Go设计模式学习笔记
shanyin
2019-03-06
阅读 7 分钟
1.8k
这个repo使用go语言实现了一些设计模式,包括常用的Builder模式,Singleton模式等,也有列举出还未用go实现的模式,如Bridge模式等。
寒假流水日记
shanyin
2018-01-26
阅读 1 分钟
2.1k
2018年寒假 24号 乐观锁、悲观锁,进一步学习:mvcc、cas、两阶段提交 golang的redis-go库如何如何编写multi、exec、watch等 复习JSP、session、servlet 25号 把host上的文件夹共享到vmware player的上guest。坑是vmware自带的vmware tools已经过时了,要用apt的open-vm-tools。还有一个坑没解决,nat模式下host和guest...
随笔
shanyin
2016-12-01
阅读 1 分钟
1.4k
对于学习,尤其是学习it技术,要实践与理论并行,这样效率是最高的。这样既累积实战经验,又对理论知识有了深刻理解,不会有知其然但不知其所以然的不安。这些道理,我再继续描述的话自己都要吐了,谁不知道这些道理呢。这些只有之际亲身体会才能明白道理的深刻,才能把这些道理当作自己行事准则。比如以前我啃操作系统...
网易云课堂linux内核分析(二)
shanyin
2016-03-06
阅读 5 分钟
2.5k
老师已经为我们搭好了实验的环境——linux3.9.4下一个极其迷你的系统。我们不用去关心别的东西,只需要知道这个迷你系统从my_start_kernel函数开始,系统时钟中断会执行my_timer_handler函数。剩下的留给我们自己发挥。同时,实验要写的代码已经给出,所以完成这个实验的难度不大。实验的关键是理解所给的代码为什么要这么...
网易云课堂linux内核分析(一)
shanyin
2016-02-22
阅读 2 分钟
3k
这是网易云课堂linux内核分析课程的实验报告 实验的内容是通过编写一段简单的c程序,并分析其汇编代码,以了解计算机是如何运行程序。 程序hello.c源代码: {代码...} 在bash下输入如下指令,获得源代码的汇编hello.s: {代码...} 由于本次试验只需要用到源代码对应的汇编指令,所以可以把hello.s中以.开头的行删除。在vi...
C缺陷与陷阱(C Traps and Pitfalls)学习笔记
shanyin
2015-11-28
阅读 7 分钟
3.9k
近来学习操作系统这门课,课程的实验基于linux 0.11,于是从图书馆借来了 C Traps and Pitalls 和 Expert C programming,打算提高一下c语言水平。先从前一本开始。这本书很薄,即使是英文版也只有140多页,讲的都是c语言中容易犯错的地方。注意:这篇笔记并没有包括整本书的内容,而只是摘抄了本人需要的知识(加上了一...