美文网首页
Go面试题总结

Go面试题总结

作者: Jaycee88 | 来源:发表于2024-03-20 14:13 被阅读0次
1. sync包下有哪些同步原语
  • sync.Mutex
  • sync.RWMutex
  • sync.WaitGroup
  • sync.Map
  • sync.Pool
  • sync.Once
  • sync.Cond
2. 怎样检测goroutine泄露
3. 锁优化
  • 减少持有时间,缩小临界区
  • 优化锁的粒度,空间换时间
  • 读写分离,读写锁 & sync.Map
  • 使用原子操作,无锁数据结构
4. 字符串拼接不同方式的区别
  • 使用 + 号:"abc" + "def"
  • 使用 fmt.Sprintf
  • 使用 strings.Join:适用于切片
  • strings.Builder:性能好

https://geektutu.com/post/hpg-string-concat.html
https://blog.csdn.net/xz_studying/article/details/106602307

5. benchmark基准测试

https://cloud.tencent.com/developer/article/2216022

6. grpc和http的区别

gRPC和HTTP都是网络协议,但是它们之间存在一些显著的区别。

1)传输协议
HTTP使用文本基础的协议,而gRPC使用的是二进制协议,这意味着gRPC数据包更小,传输效率更高。另外,gRPC使用HTTP/2协议,支持多路复用,从而可以更好地处理并发请求。

2)性能差异
gRPC在性能方面优于HTTP。由于使用了二进制格式,因此gRPC传输速度更快、更稳定。而且gRPC通过使用连接池,实现客户端与服务端的长连接机制,使得延迟较低,在高网络带宽时表现更好。

3)使用场景
HTTP主要用于Web中浏览器和服务器之间的交互,在Web应用程序中非常常见。而gRPC通常用于服务之间的通信,特别是分布式系统中,例如微服务框架等。gRPC具有高性能、低延迟、易扩展等特点,是一个理想的分布式系统通信协议。

4)序列化和反序列化
HTTP在传输过程中使用JSON或XML格式来表示数据,需要进行序列化和反序列化。而gRPC则使用了更为高效的protobuf格式,同时也支持JSON等格式。

综上所述,gRPC和HTTP在不同的场景下各有其优势,使用时应根据具体情况来进行选择。如果需要高性能的服务之间通信,则可以选择gRPC,而在Web浏览器与服务器之间传输数据时则更适合使用HTTP。

7. CGO 能用到GPM吗

https://uncledou.site/2022/go-cgo-c-to-go/

附录:
Go常见面试题
https://learnku.com/articles/62720

相关文章

网友评论

      本文标题:Go面试题总结

      本文链接:https://www.haomeiwen.com/subject/gbettjtx.html