build

Posted by 夏泽民

go build 的时候,我们写的源码文件究竟经历了哪些事情,最终变成了可执行文件?



gometalinter

Posted by 夏泽民

当然代码质量分析是devops中持续集成部分非常重要的一个环节。涉及到团队协作的时候,很多公司会有自己的一套规则,最熟悉的是阿里巴巴的java代码参考手册,专家总结,大家按照规则去写代码。但是对于devops,有了规则远远不够,还需要提高代码检查的自动化程度,以及与其他的环节合作衔接上。 那么如果没有代码质量把控这个环节,那么可能带来以下问题:



uintptr 临时变量gc风险

Posted by 夏泽民

unsafe.Pointer 这个类型比较重要,它是实现定位和读写的内存的基础,Go runtime大量使用它。官方文档对该类型有四个重要描述:



sysmon

Posted by 夏泽民

为什么抢占式调度很重要 随着Go的一步步发展,它的调度器部分的实现也越来越好了。goroutine以前是严格意义上的coroutine,也就是协程。用户负责让各个goroutine交互合作完成任务。一个goroutine只有在涉及到加锁,读写通道等操作才会触发gorouine的yield。



scheduler

Posted by 夏泽民

Golang支持语言级别的并发,并发的最小逻辑单位叫做goroutine,goroutine就是Go为了实现并发提供的用户态线程,这种用户态线程是运行在内核态线程(OS线程)之上。当我们创建了大量的goroutine并且同时运行在一个或则多个内核态线程上时(内核线程与goroutine是m:n的对应关系),就需要一个调度器来维护管理这些goroutine,确保所有的goroutine都有相对公平的机会使用CPU。



Search

Popular posts

Anything in here will be replaced on browsers that support the canvas element

Recent posts

This blog is maintained by 夏泽民

Get in touch with me at 465474307@qq.com

Subscribe to our mailing list

* indicates required