- 博客(3)
- 收藏
- 关注
原创 GO中的sync.waitgroup的用法
sync.waitgroup的基本用法waitgroup类似于C中的信号灯,也可以理解成队列,基本的操作包括 add(int) 增加信号的值,add的参数应该都为正数 done() 减少信号的值,相当于add(-1) wait() 等待信号值为0,等待期间会一直阻塞waitgroup与channel产生的死锁当同时使用了waitgroup和channel的话,要特别注意waitgroup
2016-12-09 12:20:17 1839
原创 GO中chan的理解
chan的分类分为带缓存和不带缓存这2类,尤其需要关注带缓存的用法,防止掉坑里。不带缓存 make(chan 数据类型)带缓存 make(chan 数据类型,长度)例如定义一个带缓存的chan: ch := make(chan int,2) 这里我们定义个缓存长度为2的chan,当我们已经往chan中写入了2个数据,当再次写入第三个数据的时候就会发送阻塞,直到其他人从该chan中读取了数
2016-12-09 10:47:18 6525
原创 chan的理解
chan分为带缓存和不带缓存这2类,尤其需要关注带缓存的用法,防止掉坑里。1.带缓存的定义方法为: make(chan 数据类型,缓存长度)。例如定义一个带缓存的chan: ch := make(chan int,2)这里我们定义个缓存长度为2的chan,当我们已经往chan中写入了2个数据,当再次写入第三个数据的时候就会发送阻塞,直到其他人从该chan中读取了数据,那么才可以
2016-12-09 10:21:09 1385
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人