读书笔记:Poor Economics -- 《贫穷的本质》 chapter 1“贫穷陷阱”来源,S型曲线。该曲线与斜对角线的交点为P,位于P右边,则明天的收入易于高于今天的收入。而位于P的左边,则表示明天的收入会低于今天的收入,即陷入了“贫穷陷阱”。“贫穷陷阱”是一种状态或者趋势,可通过判断将来的收入是否极大可能会比今天的收入低,来确定是否陷入该“陷阱”。chapter 2当今世界的粮食产量足够提供所有人每天必须的卡路里,即便是穷人,每天填...
深入理解golang中bufio.SplitFunc 先举一个简单的例子: 在bufio包里面定义了一些常用的工具比如Scanner,你可能需要读取用户在标准输入里面输入的一些东西,比如我们做一个复读机,读取用户的每一行输入,然后打印出来:package mainimport ( "bufio" "fmt" "os")func main() { scanner := bufio.NewScanner(os...
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() { ...
使用多阶段和UPX构建更小的Docker镜像 目录单阶段构建多阶段构建镜像使用UPX构建更小的Docker镜像们将使用以下镜像构建新的镜像:$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEgolang ...
Golang中的time.Duration类型 在 Time 包中,定义有一个名为 Duration 的类型和一些辅助的常量:type Duration int64const ( Nanosecond Duration = 1 Microsecond = 1000 * Nanosecond Millisecond = 1000 * Microsecond Second = 1000 * Milli...
Golang中defer的坑 目录#1 - defer nil函数#2 - 在循环中使用defer#3 - 延迟调用含有闭包的函数#4 - 在执行快中使用defer#5 - 延迟方法的坑#6 - defer的执行顺序#7 - 作用域屏蔽了参数#8 - 参数很快得到了值#9 - 循环中存址#10 - 不返回的意义#1 - defer nil函数如果一个延迟函数被赋值为nil, 运行...
Golang实现请求限流的几种办法 目录简单的并发控制使用计数器实现请求限流使用golang官方包实现httpserver频率限制使用Token Bucket(令牌桶算法)实现请求限流简单的并发控制利用 channel 的缓冲设定,我们就可以来实现并发的限制。我们只要在执行并发的同时,往一个带有缓冲的 channel 里写入点东西(随便写啥,内容不重要)。让并发的 goroutine在执行完成后把这个 cha...
Golang中的位运算 在 Go 语言中支持以下几种操作位的方式: & 位与 | 位或 ^ 异或 &^ 与非 << 左移 >> 右移举例:1.使用&来判断一个数字是奇数还是偶数:import ( "fmt" "math/rand")func main() {...
Golang实现并发质数筛选法 质数筛选法(埃拉托斯特尼筛法)是在一个寻找给定范围内最大质数的古老算法。它通过一定的顺序筛掉多个质数的乘积,最终得到想要的最大质数。这个算法的并行版本定义了多个 goroutine,每个 goroutine 代表一个已经找到的质数,同时有多个 channel 用来从 generator 传输数据到 filter。每当找到质数时,这个质数就会被一层层 channel 送到 main 函数来输出。...
Golang中的文件类型 符号 说明 值(Golang) ---------- 一般文件 0 d--------- 目录 1 << 31 a--------- 只添加文件(可由chattr设置) 1 << 30 l--------- exclusive use 1 << 29 ...
Linux命令行(1)文件路径与查看 目录 1.获取文件的名称与路径2.文件内容查阅2.1 cat(concatenate)参数2.2 nl参数2.3 more的按键2.4 less的按键2.5 head与tail1.获取文件的名称与路径basename : 获取文件名。 dirname:获取路径(目录名)。2.文件内容查阅cat:由第一行开始显示文件内容。 tac:从最后一行开始...