Golang
文章平均质量分 59
Alwaysion
more persistent for nothing
个人qq:790693499,欢迎来交流
展开
-
go代码知识点整理
取两数之间的随机数 //取[left,right内的随机整数] func genRand(left,right int)int { random.Seed(time.Now().UnixNano()) return random.Intn(right-left+1)+left //[0,right-left+1)+left=[left,right+1) }原创 2021-03-11 22:47:42 · 661 阅读 · 0 评论 -
指定goroutine启动的运算核数以及得到cpu数
func main() { n := runtime.GOMAXPROCS(1) //指定以1核运算 //n := runtime.GOMAXPROCS(2) //指定以4核运算 fmt.Println("n = ", n) fmt.Println("numcpu",runtime.NumCPU()) for i:=0;i<20;i++{ go fmt.Print(1) fmt.Print(0) } } ...原创 2021-03-10 22:27:59 · 410 阅读 · 0 评论 -
Go实现简单的UDP服务端客户端通信(无黏包)
目录客户端代码服务端代码 UDP协议(User Datagram Protocol)中文名称是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联)参考模型中一种无连接的传输层协议,不需要建立连接就能直接进行数据发送和接收,属于不可靠的、没有时序的通信,但是UDP协议的实时性比较好,通常用于视频直播相关领域。 客户端代码 // UDP 客户端 func main() { socket, err := net.DialUDP("udp", nil, &ne原创 2020-12-03 20:37:13 · 399 阅读 · 0 评论 -
Go实现简单的TCP服务端客户端通信(有黏包)
目录客户端代码服务端代码封包协议 客户端代码 // socket_stick/client2/main.go func main() { conn, err := net.Dial("tcp", "127.0.0.1:30000") if err != nil { fmt.Println("dial failed, err", err) return } defer conn.Close() for i := 0; i < 20; i++ { msg := `Hello, He原创 2020-12-03 20:04:27 · 331 阅读 · 0 评论 -
Go实现简单的TCP服务端客户端通信(无黏包)
目录原创 2020-12-02 22:06:03 · 365 阅读 · 0 评论 -
【几种方式实现goroutine池(worker pool)】b站qimi课程
目录题目描述题解1.限制生成个数,有缓冲区2.不限制生成个数,有缓冲区3.不限制生成个数,无缓冲区 题目描述 使用goroutine和channel实现一个计算int64随机数各位数和的程序。 开启一个goroutine循环生成int64类型的随机数,发送到jobChan 开启24个goroutine从jobChan中取出随机数计算各位数的和,将结果发送到resultChan 主goroutine从resultChan取出结果并打印到终端输出 题解 1.限制生成个数,有缓冲区 package main原创 2020-12-01 10:29:26 · 386 阅读 · 0 评论