![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
anakinsun
生来孤独
展开
-
某公司golang面试题
题目写出下面两个程序的输出结果:1.package mainimport "fmt"func main() { a := [3]int{1, 2, 3} for k, v := range a { if k == 0 { a[0], a[1] = 100, 200 fmt.Print(a) } a[k] = 100 + v } fmt.Print(a)}...原创 2019-04-24 10:31:05 · 3484 阅读 · 4 评论 -
Golang学习--tcp服务实现
概要golang实现tcp编程主要用到net包下面的几个方法:net.Listen:监听一个地址Listener接口中的Accept:接收一个请求连接net.Dial:和服务端建立连接服务端codepackage mainimport ( "bufio" "encoding/json" "flag" "fmt" "net" "os" "time")var hos...原创 2019-04-29 23:53:40 · 2028 阅读 · 0 评论 -
Gopher china 2019 ppt下载地址
虽然没去现场,看看PPT也是好的。https://github.com/gopherchina/conference/tree/master/2019原创 2019-05-07 14:38:41 · 888 阅读 · 0 评论 -
Golang的GC过程备忘
STW触发的时间一次GC有两次触发STW,一次是GC的开始阶段,主要是开启写屏障和辅助GC等操作另外就是表记完成之后,重新扫描部分根对象,禁用写屏障GC的触发条件GC在满足一定条件后会被触发, 触发条件有以下几种:gcTriggerAlways: 强制触发GCgcTriggerHeap: 当前分配的内存达到一定值就触发GCgcTriggerTime: 当一定时间没有执行过GC就触发...原创 2019-05-20 14:00:03 · 301 阅读 · 0 评论 -
Golang洗牌算法
简介主要思路为每次随机挑选一个值,放在数组末尾。然后在n-1个元素的数组中再随机挑选一个值,放在数组末尾,以此类推。注意,一定要设置随机种子,否则每次返回的值是一样的。codefunc shuffle(nums []int) []int { rand.Seed(time.Now().UTC().UnixNano()) for i := len(nums); i > 0; i-- {...原创 2019-05-10 12:49:09 · 781 阅读 · 0 评论 -
Gokit创建微服务的例子(翻译)
第一原理让我们创建一个Go kit 服务,我们暂时只用一个main.go文件。你的事务逻辑你的服务从你的事务逻辑开始。在Go kit里,我们用一个interface来描述一个服务// StringService provides operations on strings.import "context"type StringService interface { Uppercas...原创 2019-05-28 02:34:55 · 3462 阅读 · 0 评论 -
Golang面试遇到的问题--控制goroutine的并发数量
问题使用goroutine的时候,如何控制并发的数量。下面是一个简单的实现思路,用带缓存的channelcodeimport ( "fmt" "sync" "time")var wg sync.WaitGroupfunc main() { userCount := 10 ch := make(chan bool, 2) for i := 0; i < userC...原创 2019-05-28 12:42:19 · 1013 阅读 · 0 评论 -
Docker部署完整的PHP-RPC-Golang环境
完全基于docker部署一个php通过rpc访问golang的环境。基本架构我们用PHP的Laravel框架来实现一个用户登录的Restful Api,地址为:POST /user/login返回信息为用户Id以及JWT token。Golang用来实现两个服务,一个是用户信息服务,一个是登录的统计服务,PHP通过gRPC与Golang通讯。最终部署完成后,共有4个docker的co...原创 2019-06-03 17:48:37 · 1065 阅读 · 0 评论 -
在kubernetes上部署Go Micro代码(一)
环境准备用kubeadm安装好kubernetes环境,我用的测试环境是单节点的,master node和worker node部署在同一台机器上。具体的安装过程就不详述了,坑还是有一些的。首先,init的时候需要制定pod的网络环境:kubeadm init --pod-network-cidr 10.244.0.0/16其次,由于是单节点,因此需要设置允许master作为worker...原创 2019-08-03 23:20:26 · 2940 阅读 · 0 评论