1. Goroutine 定义
2. GMP 指的是什么
3. 1.0 之前 GM 调度模型
4. GMP 调度流程
5. GMP 中 work stealing 机制
6. GMP 中 hand off 机制
7. 协作式的抢占式调度
8. 基于信号的抢占式调度
9. GMP 调度过程中存在哪些阻塞
10. Sysmon 有什么作用
11. 三色标记原理
12. 写屏障
13. 插入写屏障
14. 删除写屏障
15. 混合写屏障
16. GC 触发时机
17. Go 语言中 GC 的流程是什么?
18. GC 如何调优
63. goroutine创建数量有限制吗?
64. Go语言如何实现可重入锁?
65. rpc调用过程?
66. go内存操作也要处理IO,是如何处理的?
67. Golang微服务的熔断与限流
68. syncpool的实现原理?
69. while(tree){sleep(1)}这个会有什么问题?
70. sleep底层实现原理?
71. 同一个协程里面,对无缓冲channel同时发送和接收数据有什么问题?
72. channel和锁对比一下?
73. 向为nil的channel发送数据会怎么样?
74. go struct能不能比较?
75. select可以用于什么?
76. 主协程如何等其余协程完再操作?
77. map如何顺序读取?
78. 有序集合底层怎么实现的?实现一个有序的map?
79. goroutine在项目里面主要承担了什么责任?
80. golang切片底层原理?
81. 如何把数组转化成一个切片?
82. 服务能开多少个m由什么决定?
83. 开多少个p由什么决定?
84. m和p是什么样的关系?
85. 同时启了一万个g,如何调度的?
86. channel 共享内存有什么优劣势?
87. go里面interface是什么概念?相比于java. c++interface有什么区别吗?
88. golang用到哪些框架?
89. 你觉得java和golang有什么优势劣势?
90. golang wait.group用过吗?
91. 异常捕获是如何做的?
92. 数组是如何实现用下标访问任意元素的?
93. 怎么理解“不要用共享内存来通信,而是用通信来共享内存”?
94. 用go协程的时候也是要走IO的,go是如何处理的?
95. nodejs和go是基于什么样的考虑是用这两种语言的?
96. 创建一个数组底层扩容?
97. make一个slice参数怎么写?
98. 为什么不要大量使用goroutine?
99. go利用channel通信的方式?
100. 被close的channel会有什么问题?
101. 分布式锁知道哪些?用channel如何实现?
102. 集群用channel如何实现分布式锁?
103. 并行goroutine如何实现?
104. go用共享内存的方式实现并发如何保证安全?
105. 获取不到锁会一直等待吗?
106. 那如何实现一个timeout的锁?
107. 为什么gpm模型会更快?
108. map会遇到一些并发安全的问题,为什么就并发不安全了?
109. 为什么给变量一个基础类型没有并发安全问题?
110. string和byte数组有什么区别?
111. 关闭channel有什么作用?
112. 如果一个包要依赖另一个包,这个时候如何写单元测试?
113. 浮点数在机器上面怎么存储的?
114. 用go实现一个协程池,大概用什么实现?
115. go里面为什么需要多协程?
116. 知道processor大小是多少吗?
117. goroutine为什么会存在,为什么不使用线程?
118. go里面比较成熟的日志框架了解过没有?
119. go的init函数是什么时候执行的?
120. 多个init函数执行顺序能保证吗?
121. cgo了解过引入的风险点吗?
122. go的切片扩容机制?
123. 说一下同步阻塞和异步非阻塞?
124. for range 的坑?
125. 遇到过什么语法问题?
126. go实现一个并发限制爬虫?
127. 对go的中间件和工作机制有了解吗?
128. go的sync.Map了解吗?
129. 怎么检查go问题?
130. context包内部如何实现的?
131. go怎么实现封装继承多态?
132. 一颗CPU,两个协程,其中一个协程在死循环,会发生什么?
133. 用Channel和两个协程实现数组相加
134. 用协程实现顺序打印123
135. map什么内容不能成为key?
136. 看过啥底层包?
阅读(931) | 评论(0) | 转发(0) |