IT书架 本次搜索耗时 0.109 秒,为您找到 752 个相关结果.
  • 4 Go小二的流程控制

    1733 2022-11-29 《漫画Go语言》
    程序控制结构 if分支语句 if在Go语言中的特殊写法 switch分支语句 switch 中 break 和fallthrough for 循环语句 for循环中的break 和continue 多层嵌套循环中的break 和continue goto语句 冒泡排序 return 返回 程序控制结构 程序的执行是由上到下逐行执行...
  • 353.go标准库的mutex介绍

    go标准库的mutex介绍 go标准库的mutex介绍 参考解析 题目来源:知乎 答案: 互斥锁可以用来保护一个临界区,保证同一时刻只有一个 goroutine 处于该临界区内。主要包括锁定(Lock方法)和解锁(Unlock方法)两个操作,首先对进入临界区的goroutine进行锁定,离开时进行解锁。 使用互斥锁 (Mutex)时要注...
  • 525.Go map冲突的解决方式?

    Go map冲突的解决方式? Go map冲突的解决方式? 参考解析 比较常用的Hash冲突解决方案有链地址法和开放寻址法: 链地址法 当哈希冲突发生时,创建新单元 ,并将新单元添加到冲突单元所在链表的尾部。 开放寻址法 当哈希冲突发生时,从发生冲突的那个单元 起,按照一定的次序,从哈希表中寻找一个空闲的单元,然后把发生冲突的元素存入...
  • 1.Go 互斥锁的实现原理?

    1.Go 互斥锁的实现原理? 概念 使用场景 底层实现结构 操作 加锁 解锁 注意点: 1.Go 互斥锁的实现原理? Go sync包提供了两种锁类型:互斥锁sync.Mutex 和 读写互斥锁sync.RWMutex,都属于悲观锁。 概念 Mutex是互斥锁,当一个 goroutine 获得了锁后,其他 goroutine...
  • 从0开始理解rpc和grpc

    1.课程需要用到的开发环境介绍 2.安装docker-compose 3.安装navicat和mysql 4.虚拟环境的安装和配置 5.go的安装和配置 6.nodejs的安装和配置 7.go语言编码规范 8.什么是rpc 9.rpc、http以及restful之间的区别 10.rpc开发的要素分析 11.go语言的rpc之hello w...
  • 7.基础功能:如何设计日志包,并记录日志?

    应用一般是如何记录日志的? 使用什么方式记录日志? 使用开源的日志包 基于开源日志包定制化 自研日志包 如何记录日志? 如何保存日志? miniblog 日志包定制开发 创建一个封装了 zap.Logger 的自定义 Logger。 编写创建函数,创建 zapLogger 对象 创建 *zap.Logger 对象 实现日志接口 ...
  • 405.channel 底层

    channel 底层 channel 底层 题目来源:七牛 答案: 参考《Go 语言底层原理剖析》 Go 语言的理念是通过通信来实现共享内存。Go 的CSP,通信顺序进程,是通过goroutine和channel来实现的。 如上图所见: 通道在运行时是一个特殊的hchan结构体, type hchan struct { ...
  • 453.Go 语言当中 Channel(通道)有什么特点,需要注意什么?

    Go 语言当中 Channel(通道)有什么特点,需要注意什么? Go 语言当中 Channel(通道)有什么特点,需要注意什么? 参考解析 如果给一个 nil 的 channel 发送数据,会造成永远阻塞。 如果从一个 nil 的 channel 中接收数据,也会造成永久阻塞。 给一个已经关闭的 channel 发送数据, 会引起 panic...
  • 448.Go 支持什么形式的类型转换?

    Go 支持什么形式的类型转换? Go 支持什么形式的类型转换? 参考解析 将整数转换为浮点数。 Go 支持显式类型转换以满足其严格的类型要求。 i := 55 //int j := 67.8 //float64 sum := i + int ( j ) //j is converted to in...
  • 514.Go defer关键字的实现原理?

    Go defer关键字的实现原理? Go defer关键字的实现原理? 定义 : defer 能够让我们推迟执行某些函数调用,推迟到当前函数返回前 才实际执行。defer与panic和recover结合,形成了Go语言风格的异常与捕获机制。 使用场景 : defer 语句经常被用于处理成对的操作,如文件句柄关闭、连接关闭、释放锁 优点: ...