golang 知识全解
2024-04-11 11:11:52 2 举报
使用
AI智能生成
go体系视图,欢迎补充
作者其他创作
大纲/内容
GMP模型
管道
waitGroup
DeadLine()
Done()
Err()
Value()
接口
CancelContext
DeadLineContext
TimeOutContext
ValueContext
空context
context
Mutex
RWMutex
WaitGroup
cond
Once
sync
Signal()
Wait()
Broadcast()
Cond
OnceFunc()
OnceValue()
OnceValues()
原子操作
是否被锁定
Locked
是否有协程已经被唤醒
Woken
饥饿
Starving
用来计数
Waiter
state int32
sema uint32
内存分布
自旋次数要足够少,通常为4,即最多四次
cpu核数量大于1
p > 1
协程调动中的可运行队列为空
条件
自旋
Normal 模式
Starving 模式
模式
锁
并发控制
N:1模型
1:1模型
M:N模型
线程模型
GMP
队列轮转
系统调用
工作量窃取
抢占式调度
调度策略
协程调度 runtime
协程goruntine
理解
标记清除法
三色标记法
写屏障技术
混合写屏障
策略
阶段
垃圾回收(GC)
栈空间不足
返回指针
interface
闭包
内存逃逸
内存管理
指针
反射可以将interface类型转为反射对象
反射可以将反射对象还原成interface对象
反射对象可以修改value值,前提是必须是可寻址的。可以用.elemn()寻址
反射
如何获取一个结构体的所有tag?
阻塞条件
ok代表了什么
select 和 for..range
定义数组、切片
数组和切片的区别
切片扩容
append的本质
切片表达式
切片
基础error
errors.Unwrap()
errors.Ls()
errors.As()
链式error
error
延迟函数的参数在defer语句出现时就已经确定了
延迟函数按后进先出的顺序执行
延迟函数可能操作主函数的具名返回值
defer
panic
recover
异常处理
如何高效地拼接字符串
fmt.Sprintf()
+
strings.Buffer()
strings.Builder()
strings.join()
字符串拼接
字符串
细节
golang
0 条评论
下一页