合集-golang
摘要:定义变量方式 定义变量时需要注意 在最外层一定要使用var 的方式定义变量不能使用 ':='的方式,只有在func 里面可以使用':=' 定义变量 字符串 1)是值类型,不是引用类型或指针类型 2)只读的byte slice 3)byte 数组可以放任何数据 var( str string = "h
阅读全文
摘要:goroutine 概念 goroutine是建立在线程之上的轻量级的抽象,它允许我们以非常低的代价在同一个地址空间中并行执行多个函数或者方法。相比于线程它的创建和销毁的代价要小很多,并且它的调用是独立于线程的,在golang中创建一个goroutine非常简单,使用“go” 关键字即可 Gorou
阅读全文
摘要:sync.Map 并发操作一个map的时候内置的map不是并发安全的,需要初始化map才能使用 sync.Map 是一个开箱即用的并发安全的不用初始化参数,定义一下参数,直接引用参数 使用方法: Store: 设置参数 Load: 通过key获取值 LoadOrStore: Delete:删除 Ra
阅读全文
摘要:tcp-server package main import ( "bufio" "fmt" "io" "net" "os" "strings" proto "github.com/guozh10/08day/04tcp_demo/protocol" ) // tcp server func pro
阅读全文
摘要:udp server package main import ( "bufio" "fmt" "net" "os" "strings" ) func putaway(conn *net.UDPConn)(addr *net.UDPAddr){ var data [1024]byte n,addr,e
阅读全文
摘要:os.Args 命令行参数 // 显示所有参数,包括文件本身, os.Args // 显示第一个参数 os.Args[1] // 显示第二个参数 os.Args[2] // 显示第三个参数 os.Args[3] flag 带帮助提示的命令行参数 // 创建一个标志位参数 //创建字符串的参数 nam
阅读全文
摘要:pprof 性能调优 在计算机性能调试领域里,profiling 是指对应用程序的画像,画像就是应用程序使用 CPU 和内存的情况。 Go语言是一个对性能特别看重的语言,因此语言中自带了 profiling 的库,这篇文章就要讲解怎么在 golang 中做 profiling。 说明: 希望知道应用
阅读全文
摘要:循环语句 for 循环语句 i 小于10 for i :=0; i < 10; i++;{ fmt.Printf("sum: %v\n",i) } for死循环 for { fmt.Println(i) } 判断语句 if err !=nil{ fmt.Println(err ) } if name
阅读全文
摘要:context 描述 go 1.7 版本之后加入一个新的标准库context 它定义了Context 类型 ,专门用来简化对于处理单个请求的多个goroutine之间与请求域的数据、 取消信号、截止时间等相关操作,这些操作可能涉及到多个API调用。 对服务器传入的请求应该创建上下文,而对服务器的传出
阅读全文
摘要:etcd是分布式的、可靠的、分布式存储K-V系统,用于存储分布式系统中的关键数据。 ETCD 事务 基于 CAS(Compare and Swap,即比较再交换) 方式 etcd中事务时一组原子性操作,可以确保多操作之间的原子性,并且可以保证一组操作在执行期间不会被其他操作中断 什么是事务? 事务通
阅读全文