IT书架 本次搜索耗时 0.072 秒,为您找到 752 个相关结果.
  • 228.go 的 map 与 sync.map

    go 的 map 与 sync.map 答案: go 的 map 与 sync.map 参考解析 题目来源: 字节跳动 答案: Go语言中的Map是一种无序的键值对集合。Map可以通过key在O(1)的时间复杂度内进行查询、更改、删除操作,key到value间的映射由哈希函数实现。Go的Map相当于C++的Map,Java的HashM...
  • 277.Go中struct组合与Java继承的区别

    Go中struct组合与Java继承的区别 答案: Go中struct组合与Java继承的区别 参考解析 题目来源:快手 答案: Go语言的继承通过匿名组合完成:基类以Struct的方式定义,子类只需要把基类作为成员放在子类的定义中,支持多继承。 Java的继承通过extends关键字完成,不支持多继承。
  • 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 字符
  • 377.Go如何调度,假设4核的cpu应该有几个线程或者说有几个M,那能有几个groutinue,g

    Go如何调度,假设4核的cpu应该有几个线程或者说有几个M,那能有几个groutinue,groutinue数量的上限是多少? Go如何调度,假设4核的cpu应该有几个线程或者说有几个M,那能有几个groutinue,groutinue数量的上限是多少? 题目来源:京东 答案: Go的GMP模型中M(Machine)为操作系统线程,这三者交...
  • 365.golang的基础问题,比如包管理,比如值传递,比如协程

    golang的基础问题,比如包管理,比如值传递,比如协程 golang的基础问题,比如包管理,比如值传递,比如协程 参考解析 题目来源:有色 解析: 本题因人而异,回答可以深入,也能够宽泛,但是可以基本回答几个点:1、go 在 1.11 版本之前使用 gopath 与 goroot 的模式进行包管理,从 1.11 版本后,默认使用 go ...
  • 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 不能获取锁(只能存在一个写者或读者,不能同时读和写) 使用场景: ...
  • 17.go 实现不重启热部署

    go 实现不重启热部署 go 实现不重启热部署 答案1: 根据系统的 SIGHUP 信号量,以此信号量触发进程重启,达到热更新的效果。 热部署我们需要考虑几个能力: 新进程启动成功,老进程不会有资源残留 新进程初始化的过程中,服务不会中断 新进程初始化失败,老进程仍然继续工作 同一时间,只能有一个更新动作执行 监听信号量的方法的环境是在 ...