zoukankan      html  css  js  c++  java
  • go 面试题总结

    1.什么是goroutine,他与process, thread有什么区别?

    2. 什么是channel,为什么它可以做到线程安全?

    3. 了解读写锁吗,原理是什么样的,为什么可以做到?

    4. 如何用channel实现一个令牌桶?

    5. 如何调试一个go程序?

    6. 如何写单元测试和基准测试?

    7. goroutine 的调度是怎样的?

    8. golang 的内存回收是如何做到的?

    9. cap和len分别获取的是什么?

    10. netgo,cgo有什么区别?

    11. 什么是interface?

    1. uint不能直接相减,结果是负数会变成一个很大的uint,这点对动态语言出身的会可能坑。
    2. channel一定记得close。
    3. goroutine记得return或者中断,不然容易造成goroutine占用大量CPU。
    4. 从slice创建slice的时候,注意原slice的操作可能导致底层数组变化。
    5. 如果你要创建一个很长的slice,尽量创建成一个slice里存引用,这样可以分批释放,避免gc在低配机器上stop the world

    面试的时候尽量了解协程,线程,进程的区别。

    明白channel是通过注册相关goroutine id实现消息通知的。

    slice底层是数组,保存了len,capacity和对数组的引用。

    如果了解协程的模型,就知道所谓抢占式goroutine调用是什么意思。

    尽量了解互斥锁,读写锁,死锁等一些数据竞争的概念,debug的时候可能会有用。

    尽量了解golang的内存模型,知道多小才是小对象,为什么小对象多了会造成gc压力。

    https://blog.csdn.net/weiyuefei/article/details/77963810

    https://blog.csdn.net/u010824081/article/details/78181518

    https://blog.csdn.net/yuanqwe123/article/details/81737180

    https://blog.csdn.net/Charliewolf/article/details/82720886

    100题:

    https://blog.csdn.net/itcastcpp/article/details/80462619

    https://blog.csdn.net/qq_36431213/article/details/80686436

    https://blog.csdn.net/weiyuefei/article/details/78851624

    https://blog.csdn.net/smile_YangYue/article/details/81076993

    https://blog.csdn.net/fengxiaozhuzhu/article/details/80920282

    https://blog.csdn.net/qq_28163175/article/details/75287877

  • 相关阅读:
    Spring中的BeanUtils与apache commons中的BeanUtils用法[1]
    C# rmi例子
    跨时钟域设计的一点总结
    FPGA跨时钟域异步时钟设计的几种同步策略-可编程逻辑-与非网
    关于FPGA异步时钟采样--结绳法的点点滴滴
    sigaction函数解析
    可重入函数
    SCHED_OTHER,SCHED_FIFO,SCHED_RR-intentness-ChinaUnix博客
    qt安装教程
    VS2013 平台下搭建 QT5.3 开发环境
  • 原文地址:https://www.cnblogs.com/dongzhuangdian/p/10645867.html
Copyright © 2011-2022 走看看