IT书架 本次搜索耗时 0.099 秒,为您找到 752 个相关结果.
  • 437.使用 database/sql 和 使用 gorm 的区别

    使用 database/sql 和 使用 gorm 的区别 答案: 使用 database/sql 和 使用 gorm 的区别 参考解析 题目来源:360 答案: Go操作Mysql数据库,一般有两种方式: 通过 database/sql 接口 通过 GORM 对象关系映射 使用 database/sql 接口 Go没有内置...
  • 399.怎么理解“不要用共享内存来通信,而是用通信来共享内存”

    怎么理解“不要用共享内存来通信,而是用通信来共享内存” 怎么理解“不要用共享内存来通信,而是用通信来共享内存” 题目来源 :滴滴 答案: 共享内存会涉及到多个线程同时访问修改数据的情况,为了保证数据的安全性,那就会加锁,加锁会让并行变为串行,cpu此时也会忙于线程抢锁。另外使用过多的锁,容易使得程序的代码逻辑坚涩难懂,并且容易使程序死锁,死...
  • 377.Go如何调度,假设4核的cpu应该有几个线程或者说有几个M,那能有几个groutinue,g

    Go如何调度,假设4核的cpu应该有几个线程或者说有几个M,那能有几个groutinue,groutinue数量的上限是多少? Go如何调度,假设4核的cpu应该有几个线程或者说有几个M,那能有几个groutinue,groutinue数量的上限是多少? 题目来源:京东 答案: Go的GMP模型中M(Machine)为操作系统线程,这三者交...
  • 418.比较 gin 框架和其它框架

    比较 gin 框架和其它框架 比较 gin 框架和其它框架 参考解析 题目来源:腾讯 答案: gin Go语言编写的HTTP Web框架,它以更好的性能实现了类似Martini的API,性能更好 优点 封装比较好,API友好,源码注释比较明确,具有快速灵活,容错方便等特点 运行速度快,分组的路由器,良好的崩溃捕获和错误处...
  • 425.协程间通信

    协程间通信 协程间通信 参考解析 题目来源:一点资讯 答案: 协程通信机制——Future,Channel与Pub/Sub 在许多的现代异步 IO 框架中,调度的基本单位是协程( Coroutine )。与多线程不同,协程使用程序自定义的调度器进行调度,因此更容易控制协程之间的执行顺序,要想充分利用协程的调度模型,有一个趁手的...
  • 26、性能优化

    性能优化 一、性能优化 二、下载OSS的SDK 三、实现OSS上传 四、测试云存储是否成功 性能优化 一、性能优化 锁的频次(降低锁的频次,就比如群聊的时候使用的协程) json编码次数(降低JSON编码次数,能不编码尽量不编码) 静态资源分离(静态资源与应用资源进行分离,存储到alioss) 二、下载OSS的SDK func ...
  • 205.byte和rune有什么区别

    byte和rune有什么区别 byte和rune有什么区别 题目来源:好未来 答案: rune和byte在go语言中都是字符类型,且都是别名类型 byte型本质上是uint8类型的别名,代表了ASCII 码的一个字符 rune型本质上是int32型的别名,代表一个 UTF-8 字符
  • 2.go的配置文件管理

    1. 介绍 2. yaml教程 3. 安装 4. 将配置文件映射成struct 5. 使用 1. 介绍 Viper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。它支持以下特性: 设置默认值 从JSON 、TOML 、YAML 、HCL 、envfile 和Java proper...
  • 540.Go 可重入锁如何实现?

    Go 可重入锁如何实现? Go 可重入锁如何实现? 参考解析 概念: 可重入锁又称为递归锁,是指在同一个线程在外层方法获取锁的时候,在进入该线程的内层方法时会自动获取锁,不会因为之前已经获取过还没释放再次加锁导致死锁 为什么Go语言中没有可重入锁? Mutex 不是可重入的锁。Mutex 的实现中没有记录哪个 goroutine 拥有这...
  • 536.Go 互斥锁的实现原理?

    Go 互斥锁的实现原理? Go 互斥锁的实现原理? 参考解析 Go sync包提供了两种锁类型:互斥锁sync.Mutex 和 读写互斥锁sync.RWMutex,都属于悲观锁。 概念: Mutex是互斥锁,当一个 goroutine 获得了锁后,其他 goroutine 不能获取锁(只能存在一个写者或读者,不能同时读和写) 使用场景: ...