go
文章平均质量分 97
想要追着光
黑夜无论怎样悠长,白昼总会到来,愿我们都能追寻到自己心中的光呀。
GitHub链接: https://github.com/wantLight
展开
-
Eggo-Go语言底层学习
字符咋存?utf8咋编码?string啥结构?字符8个比特组成一个字节。存字符就是存编号。(字符集)utf8 go语言默认编码存汉字怎么破 - 定长编码 - 变长编码strings = "test"s[2] 可以打印,但不能被修改。要修改的话,可以重新赋值字符串。或者转为slice字符串变量可以共享底层内容。Slice扩容规则。newCap个元素需多大内存这里和语言的 内存管理模块 决定。匹配到合适的内存规格。例如这里 newCap = 5,需要 5*8 = 40byt原创 2021-03-02 15:44:08 · 842 阅读 · 1 评论 -
Go专家编程-定时器
本文为《Go专家编程》读书笔记~Go专家编程原创 2021-02-25 12:10:36 · 273 阅读 · 0 评论 -
Go专家编程-并发控制 Channel/WaitGroup/Context +反射
本文为《Go专家编程》读书笔记~Go专家编程并发控制ChannelWaitGroup信号量数据结构Add(delta int)Wait()Done()ContextContext接口Deadline()Done()Err()Value()cancelCtxDone()接口实现Err()接口实现cancel()接口实现WithCancel()方法实现timerCtxDeadline()接口实现cancel()接口实现valueCtxValue()接口实现tips并发控制协程A执行过程中需要创建子协原创 2020-11-18 17:28:18 · 471 阅读 · 0 评论 -
Go专家编程-协程
本文为《Go专家编程》读书笔记~Go专家编程协程线程池的缺陷Goroutine调度器Goroutine调度策略队列轮转系统调用工作量窃取GOMAXPROCS设置对性能的影响协程线程池的缺陷任务队列中的每一个任务称作G,而G往往代表一个函数。线程池中的线程worker线程不 断的从任务队列中取出任务并执行。而worker线程的调度则交给操作系统进行调度。如果worker线程执行的G任务中发生系统调用,则操作系统会将该线程置为阻塞状态,也意味着该线程在怠工,也意 味着消费任务队列的worker线原创 2020-11-17 16:00:15 · 376 阅读 · 0 评论 -
Go专家编程-常见控制结构实现原理
本文为《Go专家编程》读书笔记~Go专家编程常见控制结构实现原理defer规则一:延迟函数的参数在defer语句出现时就已经确定了规则二:延迟函数执行按后进先出顺序执行,即先出现的 defer最后执行(栈)规则三:延迟函数可能操作主函数的具名返回值函数返回过程主函数拥有匿名返回值,返回字面值主函数拥有匿名返回值,返回变量defer原理select实现原理case数据结构select实现逻辑总结range优化:range for slicerange for maprange for channel原创 2020-11-17 11:37:39 · 329 阅读 · 0 评论 -
Go专家编程-常见数据结构实现原理
本文为《Go专家编程》读书笔记~Go专家编程常见数据结构实现原理1.1 chan1.前言2.chan数据结构环形队列等待队列类型信息锁3.channel读写向channel写数据从channel读数据关闭channel1.2 sliceSlice 扩容Slice Copy总结mapbucket数据结构哈希冲突负载因子渐进式扩容增量扩容等量扩容查找过程插入过程structTagiotastring[]byte转string字符串拼接常见数据结构实现原理本章主要介绍常见的数据结构,比如channel原创 2020-11-16 19:52:41 · 358 阅读 · 0 评论 -
Java转Go初步学习(并发)
最近面试成功了腾讯教育子公司。以后得从事Go语言开发相关工作啦,特此在这记录下Go基础学习。参考链接: https://tour.go-zh.org/Go并发Go程信道 (<-)无缓冲通道带缓冲的信道range循环信道需要配合close关闭select 语句sync.Mutex 互斥Go程Go 程(goroutine)是由 Go 运行时管理的轻量级线程。// 会启动一个新的 Go 程并执行 f(x, y, z)go f(x, y, z)信道 (<-)信道是带有类型的管道,你可原创 2020-11-05 11:49:06 · 300 阅读 · 0 评论 -
Java转Go初步学习(方法和接口篇)
最近面试成功了腾讯教育子公司。以后得从事Go语言开发相关工作啦,特此在这记录下Go基础学习。参考链接: https://tour.go-zh.org/Go方法和接口方法指针接收者方法与指针重定向选择值或指针作为接收者接口接口与隐式实现接口值nil 接口值空接口类型断言 (访问接口值底层具体值)类型选择 switch v := i.(type)Stringer接口错误Reader方法Go 没有类。不过你可以为结构体类型定义方法。方法就是一类带特殊的 接收者 参数的函数。方法接收者在它自己的参数原创 2020-11-03 09:31:42 · 1077 阅读 · 0 评论