一闪笔记 本次搜索耗时 0.102 秒,为您找到 750 个相关结果.
  • 292.go channel底层实现

    265 2024-01-19 《Golang面试题》
    go channel底层实现 go channel底层实现 参考解析 题目来源:拼多多 答案:ORVR 在了解channel底层实现前,先得明白go的并发模型,在其他的语言中java、Python中的并发模型基本都是基于操作系统的线程,并发执行单元(线程)之间的通信一般就是用操作系统提供的线程或进程间的通信原语,如共享内存、信号、管道、消...
  • 5.Go hand off 机制?

    5.Go hand off 机制? 分离流程 5.Go hand off 机制? 概念 也称为P分离机制,当本线程 M 因为 G 进行的系统调用阻塞时,线程释放绑定的 P,把 P 转移给其他空闲的 M 执行,也提高了线程利用率(避免站着茅坑不拉shi)。 分离流程 当前线程M阻塞时,释放P,给其它空闲的M处理
  • 3.Go slice扩容机制?

    3.Go slice扩容机制? Go 1.18版本之前 Go 1.18版本切片扩容 3.Go slice扩容机制? Go 1.18版本之前 扩容会发生在slice append的时候,当slice的cap不足以容纳新元素,就会进行扩容,扩容规则如下 如果新申请容量比两倍原有容量大,那么扩容后容量大小 为 新申请容量 如果原有 slice ...
  • 7.go语言编码规范

    1. 为什么需要代码规范 2. 代码规范 1. 命名规范 1.1 包名:package 1.2 文件名 1.3 结构体命名 1.4 接口命名 1.5 变量命名 1.6 常量命名 2. 注释 2.1 包注释 2.2 结构(接口)注释 2.3 函数(方法)注释 2.4 代码逻辑注释 2.5 注释风格 3. import 规范 4....
  • Slice

    1.Go slice的底层实现原理? 2.Go slice深拷贝和浅拷贝 3.Go slice扩容机制? 4.Go slice为什么不是线程安全的?
  • 432.Go中struct组合与Java继承的区别

    129 2024-01-23 《Golang面试题》
    Go中struct组合与Java继承的区别 答案: Go中struct组合与Java继承的区别 参考解析 题目来源:快手 答案: 两者都是在编译期实现的。Go语言的继承通过匿名组合完成:基类以Struct的方式定义,子类只需要把基类作为成员放在子类的定义中,支持多继承。Java的继承通过extends关键字完成,不支持多继承。 示例...
  • 5. Go 有哪些方式安全读写共享变量?

    5. Go 有哪些方式安全读写共享变量? 5. Go 有哪些方式安全读写共享变量? 5. Go 有哪些方式安全读写共享变量? 方法 并发原语 备注 不要修改变量 sync.Once 不要去写变量,变量只初始化一次 只允许一个goroutine访问变量 Channel 不要通过共享变量来通信,通过通信(channel...
  • 234.两个协程交替打印1到20

    153 2024-01-18 《Golang面试题》
    两个协程交替打印1到20 答案: 两个协程交替打印1到20 参考解析 题目来源:字节跳动 答案: 使用channel package main import ( "fmt" "sync" "time" ) func main () { wg ...
  • 6.Go channel共享内存有什么优劣势?

    6.Go channel共享内存有什么优劣势? 6.Go channel共享内存有什么优劣势? “不要通过共享内存来通信,我们应该使用通信来共享内存” 这句话想必大家已经非常熟悉了,在官方的博客,初学时的教程,甚至是在 Go 的源码中都能看到 无论是通过共享内存来通信还是通过通信来共享内存,最终我们应用程序都是读取的内存当中的数据,只是前者是直接...
  • 533.Go channel共享内存有什么优劣势?

    141 2024-01-25 《Golang面试题》
    Go channel共享内存有什么优劣势? Go channel共享内存有什么优劣势? 参考解析 “不要通过共享内存来通信,我们应该使用通信来共享内存” 这句话想必大家已经非常熟悉了,在官方的博客,初学时的教程,甚至是在 Go 的源码中都能看到 无论是通过共享内存来通信还是通过通信来共享内存,最终我们应用程序都是读取的内存当中的数据,只是前者...