page contents

如何准备golang面试?

本文讲述了如何准备golang面试?具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

attachments-2022-04-DN2TzL6k625a1b8adaa54.png

本文讲述了如何准备golang面试?具有很好的参考价值,希望对大家有所帮助。一起跟随六星小编过来看看吧,具体如下:

golang虽然相对其它语言来说算是一门新的编程语言,但是其实自它诞生以来也已经有了十年以上的历史了。最近这两年,golang语言变得异常火爆,很多公司都开始大量招收golang开发人员,而golang程序员的面试就显得非常重要,下面小编总结几个golang中经常被问到的经典题目。

内存管理

golang中的内存管理和其它语言基本一样,也是分为堆区和栈区,较c语言进步的地方是它的内存垃圾回收是自动的,不需要程序员手动释放内存。下面总结几点golang中内存分配到堆区和栈区的几点特性

Golang的运行时为每个goroutine分配一个栈区当一个goroutine执行退出的时候,golang运行时并不立即清理栈区,它只是将它标记为不使用,当其它或者goroutine使用的时候在分配给它们使用。golang的运行时非常智能,如果一个变量的引用仍然存在,它会把它保存到堆上,这样其它的goroutine就可以访问它。栈上的内存函数返回直接释放,堆上的内存需要垃圾回收golang的编译器会进行逃逸分析就是它会自主决定变量分配到堆上还是栈上。


Goroutines

golang语言最引以为傲的点应该就是goroutine了,它通过csp模型,解决了并发问题,而且它实现起来非常的简单优雅。

attachments-2022-04-aXCiv7bY625a1ac62a4e2.png
关于goroutine也有几点需要说明的。

每个程序至少包含一个goroutine,那就是main goroutine,当程序启动的时候,它会被自动创建出来。goroutine不是线程,它是用户级别的线程,是由用户自己管理的,不是操作系统管理的。goroutine很轻量,因此涉及到并发的时候,我们可以非常方便地启动多个goroutine。一个goroutine里面还可以启动goroutine。goroutine之间通过管道进行通信。


Channel

channel是golang语言一个特殊的数据结构,goroutine就是通过通道进行通讯,通道类似于一个队列,遵循先进先出原则。

attachments-2022-04-lVxcRaUJ625a1aeaa2ffd.png

channel是有方向的,可以单向,也可以双向。这里的单向指的是在同一个协程中只能读取或者只能写入,在另一个协程中相反。channel是有类型的,创建的时候需要声明,之后只能接收该类型的信息。channel中的数据可以通过阻塞和非阻塞的方式接收。channel可以有缓冲区,也可以没有缓冲区。


WaitGroup,Mutex,RWMutex

当我们想要确定所有的goroutine是否都执行完毕的时候,我们需要一个同步机制,这个时候我们可以使用WaitGroup来进行同步,它可以控制一组gorouine都执行完毕。

Mutex是互斥锁,同一个时间只有一个gorouine获取到锁才能执行,其它的需要等待。

attachments-2022-04-V9uN7K4n625a1af97fd41.png
RWMutex是读写锁,顾名思义,当读的次数多的时候,我们可以加多个读锁,而写入操作的时候,只能加一个写锁。

锁的存在都是为了限制资源的竞争,防止资源被同时修改引起冲突。

Interface

golang语言中的接口是隐式实现的,也就是说它不需要显示声明,只要实现接口的方法,我们就说它实现了接口。

attachments-2022-04-SSQmlYsc625a1b0739c66.png
接口是golang语言中的一种类型,它可以成为变量的定义,函数的入参,函数的返回值。

结构体可以实现接口,结构体指针也可以实现接口,因为接口定义的时候没有指定类型。

golang中的接口不是任意类型,它是一种特殊类型。

更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-06-stxj9bXh62a4376eccdf6.jpeg

  • 发表于 2022-04-16 09:27
  • 阅读 ( 525 )
  • 分类:Golang

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1470 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章