
golang源码分析
文章平均质量分 79
奔跑の河马
滴水可石穿,跬步致千里
展开
-
golang中如何利用并行高效的解决问题(附代码)
背景笔者在工程中经常使用golang来进行开发,用go来写高并发程序也确实是爽的不要不要的。前段时间在读了William Kennedy的文章Scheduling In Go : Part III - Concurrency后对如何使用并行更高效的优化golang代码有了进一步的理解,在此记录一下。原文地址:https://www.ardanlabs.com/blog/2018/12/sche...原创 2020-03-23 23:00:18 · 696 阅读 · 0 评论 -
golang互斥锁和读写锁性能分析
在并发操作中为了防止多任务同时修改共享资源导致的不确定结果,我们可能会用到互斥锁和读写锁。一:互斥锁1.互斥锁有两种操作,获取锁和释放锁2.当有一个goroutine获取了互斥锁后,任何goroutine都不可以获取互斥锁,只能等待这个goroutine将互斥锁释放3.互斥锁适用于读写操作数量差不多的情况二:读写锁1.读写锁有四种操作 读上锁 读解锁 写上锁 写解锁2.写锁最多有一...原创 2019-04-05 21:42:20 · 10355 阅读 · 4 评论 -
golang defer性能和可能会遇到的坑
TODO原创 2019-04-07 12:28:20 · 1377 阅读 · 2 评论 -
golang中可变参数的使用:求最大值和最小值
golang中可以使用可变化的参数来声明函数,比如求一列数中的最大值或者是最小值,传入的参数个数是不固定的,这时就需要使用到可变参数。一:可变参数的生命形式可变参数的声明形式如下:func function(param ...type) type { }具体到本文讲解的求最大值函数max和求最小值函数min的声明会如下形式:func min(num ...int) int { //求...原创 2019-05-22 10:25:14 · 6266 阅读 · 1 评论