06 2019 档案
摘要:golang的缓冲channel简单使用 [toc] 我们常用的是无缓冲channel : 其实make() 创建chan的第二个参数可设置缓冲channel的大小。 上述语句等价于 make(chan type, 1) 即创建了一个缓冲区大小为1channel 下面看有缓冲channel的两个例子
阅读全文
摘要:golang协程同步的几种方法 [toc] 本文简要介绍下go中协程的几种同步方法。 协程概念简要理解 协程类似线程,是一种更为轻量级的调度单位,但协程还是不同于线程的,线程是系统级实现的,常见的调度方法是时间片轮转法,如每隔10ms切换一个线程执行。 协程则是应用软件级实现,它和线程的原理差不多,
阅读全文
摘要:红黑树原理详解及golang实现 [toc] 在看红黑树原理之前,先看下二叉查找树。 二叉查找树 二叉查找树,又称二叉排序树,二叉搜索树。 性质 它具备以下性质: 1、左子树上的所有节点均小于它的根节点值。 2、右子树上的所有节点的值均大于它根节点的值。 3、左右子树也分别为二叉排序树。 4、没有键
阅读全文