Golang
文章平均质量分 72
ALA耀绛
这个作者很懒,什么都没留下…
展开
-
Golang中的文件类型
符号 说明 值(Golang) ---------- 一般文件 0 d--------- 目录 1 << 31 a--------- 只添加文件(可由chattr设置) 1 << 30 l--------- exclusive use 1 << 29 ...原创 2018-08-06 23:03:59 · 2912 阅读 · 0 评论 -
Golang并发环境应用map的解决方案
众所周知,golang的map是非协程安全的(go1.6版本以后,go1.6之前读安全),而并发读写map的需求应该是很普遍的。举例如下:package mainimport "fmt"func main() { a := make(map[int]bool, 0) for i:=0;i<100;i++{ go func() { ...转载 2018-09-06 19:21:00 · 1029 阅读 · 0 评论 -
Golang中的time.Duration类型
在 Time 包中,定义有一个名为 Duration 的类型和一些辅助的常量:type Duration int64const ( Nanosecond Duration = 1 Microsecond = 1000 * Nanosecond Millisecond = 1000 * Microsecond Second = 1000 * Milli...转载 2018-09-04 19:15:17 · 57392 阅读 · 0 评论 -
Golang实现请求限流的几种办法
目录简单的并发控制使用计数器实现请求限流使用golang官方包实现httpserver频率限制使用Token Bucket(令牌桶算法)实现请求限流简单的并发控制利用 channel 的缓冲设定,我们就可以来实现并发的限制。我们只要在执行并发的同时,往一个带有缓冲的 channel 里写入点东西(随便写啥,内容不重要)。让并发的 goroutine在执行完成后把这个 cha...原创 2018-08-24 14:45:33 · 17797 阅读 · 0 评论 -
Golang实现并发质数筛选法
质数筛选法(埃拉托斯特尼筛法)是在一个寻找给定范围内最大质数的古老算法。它通过一定的顺序筛掉多个质数的乘积,最终得到想要的最大质数。这个算法的并行版本定义了多个 goroutine,每个 goroutine 代表一个已经找到的质数,同时有多个 channel 用来从 generator 传输数据到 filter。每当找到质数时,这个质数就会被一层层 channel 送到 main 函数来输出。...转载 2018-08-20 23:10:24 · 1175 阅读 · 2 评论 -
Golang中defer的坑
目录#1 - defer nil函数#2 - 在循环中使用defer#3 - 延迟调用含有闭包的函数#4 - 在执行快中使用defer#5 - 延迟方法的坑#6 - defer的执行顺序#7 - 作用域屏蔽了参数#8 - 参数很快得到了值#9 - 循环中存址#10 - 不返回的意义#1 - defer nil函数如果一个延迟函数被赋值为nil, 运行...原创 2018-08-27 17:36:59 · 2158 阅读 · 0 评论 -
Golang中的位运算
在 Go 语言中支持以下几种操作位的方式: & 位与 | 位或 ^ 异或 &^ 与非 << 左移 >> 右移举例:1.使用&来判断一个数字是奇数还是偶数:import ( "fmt" "math/rand")func main() {...原创 2018-08-22 14:14:38 · 2489 阅读 · 0 评论 -
深入理解golang中bufio.SplitFunc
先举一个简单的例子: 在bufio包里面定义了一些常用的工具比如Scanner,你可能需要读取用户在标准输入里面输入的一些东西,比如我们做一个复读机,读取用户的每一行输入,然后打印出来:package mainimport ( "bufio" "fmt" "os")func main() { scanner := bufio.NewScanner(os...转载 2018-11-08 15:49:13 · 699 阅读 · 0 评论