Golang
文章平均质量分 58
Golang学习
sherlock221c
这个作者很懒,什么都没留下…
展开
-
《Go语言实战》读书笔记——并发与并行
操作系统会在物理处理器上调度线程来运行,而Go语言的运行会在逻辑处理器上调度goroutine。每个逻辑处理器都分别绑定到单个操作系统线程。在1.5版本上,Go语言的运行时默认会为每个可用的物理处理器分配一个逻辑处理器。在1.5版本之前的版本中,默认给整个应用程序只分配一个逻辑处理器。如果创建一个goroutine,这个goroutine就会被放到调度器的全局运行队列当中。之后,调度器就将这些队列中的goroutine分配给一个逻辑处理器,并放到这个逻辑器对应的本地运行队列中。本地运行队列中的gorou原创 2021-01-13 16:14:35 · 117 阅读 · 0 评论 -
《Go语言实战》读书笔记——公开或未公开的标识符
一、包里未公开的标识符Go语言支持从包里公开或者隐藏标识符。通过这个功能,让用户能按照自己的规则控制标识符的可见性。这个就类似于Java当中的权限修饰符private、public,只是golang当中是使用对变量名首字母大小写来控制其的可访问性。package counterstype alertCounter intpackage mainimport ( "fmt" "counters")// main 是应用程序的入口func main() { //..原创 2021-01-13 00:38:35 · 141 阅读 · 2 评论 -
《Go语言实战》读书笔记——数组的内部实现和基础功能
4.1.1 内部实现在 Go 语言里,数组是一个长度固定的数据类型,用于存储一段具有相同的类型的元素的连 续块。数组存储的类型可以是内置类型,如整型或者字符串,也可以是某种结构类型。4.1.2 声明和初始化声明数组时需要指定内部存储的数据的类型,以及需要存储的元素的数量,这个数量也称为数组的长度。// 声明一个包含 5 个元素的整型数组var array [5]int一旦声明,数组里存储的数据类型和数组长度就都不能改变。如果需要存储更多的元素, 就需要先创建一个更长的数组,再把原来数原创 2021-01-10 16:37:58 · 115 阅读 · 0 评论 -
《Go语言实战》读书笔记——关于Go语言的介绍
目录1.1 用Go解决现代编程难题1.1.1 开发速度1.1.2 并发1.goroutine2.通道1.1.3 Go语言的类型系统1.类型简单2.Go 接口对一组行为建模1.1.4 内存管理1.2 小结1.1 用Go解决现代编程难题C 和 C++这类语言提供了很快的执行速度,而 Ruby 和 Python 这类语言则擅长快速开发。 Go 语言在这两者间架起了桥梁,不仅提供了高性能的语言,同时也让开发更快速。1.1.1 开发速度编译 G...原创 2021-01-09 17:05:13 · 198 阅读 · 0 评论 -
Golang使用协程通过Socket实现客户端向服务端发送数据,服务端接收数据
服务端代码:package mainimport( "fmt" "net")func process(conn net.Conn) { //延迟关闭目前连接 defer conn.Close() for{ buf:=make([]byte, 1024) fmt.Printf("服务器在等待客户端%s 发送信息\n", conn.RemoteAddr().String()) n, err:=conn.Read(buf)原创 2021-01-08 15:17:15 · 1650 阅读 · 1 评论 -
Golang对全局变量加锁同步解决资源访问共享问题——使用Go协程来同时并发计算多个数字(1-200)的阶乘
使用Go协程来同时并发计算多个数字(1-200)的阶乘,然后存储在数组当中package mainimport ( "fmt" "time")var( myMap = make(map[int]int, 10))func test(n int){ res:=1 for i:=1; i<=n; i++{ res*=i } myMap[n]=res}func main(){ for i:=1; i<=200; i++{ go test(i) }.原创 2021-01-06 15:42:14 · 1161 阅读 · 0 评论