go高阶知识

1.GMP

GMP原理

  • sysmon sysmon是我们的保洁阿姨,它是一个M,又叫监控线程,不需要P就可以独立运行,每20us~10ms会被唤醒一次出来打扫卫生,主要工作就是回收垃圾、回收长时间系统调度阻塞的P、向长时间运行的G发出抢占调度等等。
  • G会运行在M上需要一个P 1/61概率

2.go struct能不能比较

  • 不同类型的 struct 之间不能进行比较,编译期就会报错(GoLand 会直接提示) 同类型的 struct 也分为两种情况, struct 的所有成员都是可以比较的,则该 strcut 的不同实例可以比较 struct 中含有不可比较的成员(如 Slice),则该 struct 不可以比较

3.select可以用于什么

  • 常用语gorotine的完美退出 golang 的 select 就是监听 IO 操作,当 IO 操作发生时,触发相应的动作 每个case语句里必须是一个IO操作,确切的说,应该是一个面向channel的IO操作

4.context包的用途

Context通常被译作上下文,它是一个比较抽象的概念,其本质,是【上下上下】存在上下层的传递,上会把内容传递给下。在Go语言中,程序单元也就指的是Goroutine 用于协程退出

5. 主协程如何等其余协程完再操作

waitGroup channel context

6.slice,len,cap,共享,扩容

slice底层实现是数组 可以用cap 和len 扩容后地址会变 双倍扩容 超过1024 就1024点四分之一增长

7. map如何顺序读取

map的key进行排序然后输出

8. 实现set

type inter interface{}
type Set struct {
    m map[inter]bool
    sync.RWMutex
}

func New() *Set {
    return &Set{
    m: map[inter]bool{},
    }
}
func (s *Set) Add(item inter) {
    s.Lock()
    defer s.Unlock()
    s.m[item] = true
}

9.http get跟head/状态码/http keep-alive/http能不能一次连接多次请求,不等后端返回

  • http的get和head本质都是一次请求,区别是head只会获取头信息,状态码1000-500 -http本质上市使用socket连接,因此发送请求,接写入tcp缓冲,是可以多次进行的,这也是http是无状态的一种
  • client发出的HTTP请求头需要增加Connection:keep-alive字段 Web-Server端要能识别Connection:keep-alive字段,并且在http的response里指定Connection:keep-alive字段,告诉client,我能提供keep-alive服务,并且"应允"client我暂时不会关闭socket连接

10. tcp与udp区别,udp优点,适用场景

tcp 有状态连接 3次握手 可靠 字节流 socket udp 无状态连接 传输流 不可靠 速度快

11.time-wait的作用

  • 为了保证客户端发送的最后一个ack报文段能够到达服务器。因为这最后一个ack确认包可能会丢失
  • 原因2:在第四次挥手后,经过2msl的时间足以让本次连接产生的所有报文段都从网络中消失,这样下一次新的连接中就肯定不会出现旧连接的报文段了。

12. slice和数组,slice底层结构

slice是动态的 是引用类型 数组是固定的 不同大小的数组就是不同的类型 切片的底层结构是一个指向数组地址的指针和cap len

全部评论

相关推荐

点赞 评论 收藏
分享
03-12 14:52
已编辑
长沙学院 Java
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
10113次浏览 92人参与
# 你的实习产出是真实的还是包装的? #
1808次浏览 41人参与
# 米连集团26产品管培生项目 #
5845次浏览 214人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7505次浏览 43人参与
# 简历第一个项目做什么 #
31615次浏览 332人参与
# 重来一次,我还会选择这个专业吗 #
433411次浏览 3926人参与
# 巨人网络春招 #
11313次浏览 223人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187041次浏览 1122人参与
# 牛客AI文生图 #
21417次浏览 238人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152320次浏览 887人参与
# 研究所笔面经互助 #
118886次浏览 577人参与
# 简历中的项目经历要怎么写? #
310142次浏览 4199人参与
# AI时代,哪些岗位最容易被淘汰 #
63520次浏览 808人参与
# 面试紧张时你会有什么表现? #
30493次浏览 188人参与
# 你今年的平均薪资是多少? #
213044次浏览 1039人参与
# 你怎么看待AI面试 #
179946次浏览 1239人参与
# 高学历就一定能找到好工作吗? #
64320次浏览 620人参与
# 你最满意的offer薪资是哪家公司? #
76458次浏览 374人参与
# 我的求职精神状态 #
448014次浏览 3129人参与
# 正在春招的你,也参与了去年秋招吗? #
363316次浏览 2638人参与
# 腾讯音乐求职进展汇总 #
160608次浏览 1111人参与
# 校招笔试 #
470671次浏览 2964人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务