使用 dlv 调试 golang 程序

使用 dlv 前 取消编译时优化 go build -gcflags='all=-N -l' 取消测试用例编译时优化 go test -c --gcflags='all=-N -l' 使用 dlv to be continue…

2018-10-17 22:03:39

阅读数 514

评论数 0

LRU缓存算法

注:本文使用golang语言表述。 LRU(least recently used)是一个缓存剔除策略算法,在缓存容量不足的时候,将最不常用的一个或多个缓存相剔除,腾出空间以便后续缓存使用。 实现一个LRU cache LRU cache可以使用两个数据结构来表示。 一个hash...

2018-06-13 11:43:46

阅读数 186

评论数 0

golang http 请求

1. 使用默认http.Client{} 使用标准库的http.Post方法。 postData = ` { "name": "jian", "age":20 }` ...

2018-04-26 16:50:09

阅读数 193

评论数 0

Processes, threads and goroutines

Processes进程 起初,计算机在批处理模式下一个一个地执行任务。后来在上世纪60年代开发了多任务分时操作系统,在70年代 被广泛用于网络服务器、ftp、telnet、以及后来地httpd上,httpd使用fork子进程的方式来处理每个网连接。 在分时系统上,系统记录当前执行进程的状态,然...

2018-03-16 17:17:52

阅读数 166

评论数 0

golang c10k问题

不好意思,英文原文地址找不到了 go 内置 network poller 2002那年,Dan Kegel 提出了c10k问题。简单来说,就是在当今硬件水平下如何写出一个支持上万并发的tcp server。这个问题提出之后,出现了多线程和事件循环来提高服务器性能。 多线程对调度和...

2018-03-15 17:04:06

阅读数 358

评论数 0

golang 整数常量INT_MAX INT_MIN最大值最小值

在C语言中,有标准库limits.h定义了一些最大最小值常量,例如int类型的最大值常量INT_MAX,最小值常量INT_MIN,无符号整型uint类型的最大值常量UINT_MAXgolang的标准库里没有定义这些变量。不过可以用位操作运算,轻松定义这些常量。无符号整型uint其最小值是0,其二进...

2017-10-29 22:40:24

阅读数 10838

评论数 0

golang实现python xrange方法

在python中,可以使用xrange方法方便地获取一个整数列表:for v in xrange(5): print(v)输出:0 1 2 3 4golang没有原生的xrange方法,不过可以使用golang的channel配合goroutine实现一个xrange方法。 下面是一个简...

2017-07-10 15:41:52

阅读数 302

评论数 0

golang实现generator

python和nodejs都可以是使用yield关键字,实现一个generator。 python版: def generator(): n = 0 while True: yield n n = n+1for i in generator(): ...

2017-07-07 20:12:20

阅读数 599

评论数 0

tcp client and server

sample tcp servertcp server 在处理请求前需要做两个事情: 1. 监听 2. 获取tcp 连接使用net包中的net.Listen()方法获取监听器。 使用Accept()方法获取tcp连接simple_tcp_server.gopackage mainimport...

2017-02-12 21:43:02

阅读数 467

评论数 0

golang 结构体和 json 相互转换时的 key 匹配问题

使用json.Unmarshal时,结构体的每一项必须是导出项(import field)也是就说结构体的key的首字母必须大写。package mainimport "fmt" import "encoding/json"type Person struc...

2016-12-20 15:43:29

阅读数 7907

评论数 0

用go run命令启动main package中的多个文件

通常在main package中只有一个main.go文件,里面有程序的入口函数main()。 使用 go run main.go 就可以跑起程序了。 但是如果main.go文件比较长,希望将main.go拆分多个文件,比如在main package下,有a.go , b.go和mai...

2016-11-16 01:51:57

阅读数 9845

评论数 2

golang and json

用惯了javascript,用惯了json,突然在golang使用json。还是感觉浑身不舒服。 官方上有简单的[介绍]。https://blog.golang.org/json-and-go在没有指定具体数据类型时,json package默认解析任意json object成如下数据类型: ...

2016-07-26 14:09:04

阅读数 325

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭