IT书架 本次搜索耗时 0.072 秒,为您找到 752 个相关结果.
  • 531.Go channel为什么是线程安全的?

    Go channel为什么是线程安全的? Go channel为什么是线程安全的? 为什么设计成线程安全? 不同协程通过 channel 进行通信,本身的使用场景就是多线程,为了保证数据的一致性,必须实现线程安全 如何实现线程安全的? channel 的底层实现中, hchan 结构体中采用 Mutex 锁来保证数据读写安全。在对循环数组 ...
  • 532.Go channel如何控制goroutine并发执行顺序?

    Go channel如何控制goroutine并发执行顺序? Go channel如何控制goroutine并发执行顺序? 参考解析 **多个goroutine并发执行时,每一个goroutine抢到处理器的时间点不一致,gorouine的执行本身不能保证顺序。**即代码中先写的gorouine并不能保证先执行 思路:使用channel进行通信...
  • 103.goroutine和线程的区别,为什么说goroutine轻量

    goroutine和线程的区别,为什么说goroutine轻量 goroutine和线程的区别,为什么说goroutine轻量 题目来源:美团 答案1: 线程 线程 有时被称为轻量级进程(Lightweight Process) ,是程序执行流的最小单元。 goroutine goroutine是Go语言中的轻量级线程 实现,也...
  • 276.内存对其了解吗?

    内存对其了解吗? 答案: 内存对其了解吗? 参考解析 题目来源:知乎 答案: go语言的内存分配是基于tcmalloc模型的. go语言跟大多数内置运行时(runtime)的编程语言一样,抛弃传统内存分配的方式,改为自己管理。这样可以完成类似预分配、内存池等操作,以闭开系统调用带来的性能问题,防止每次分配内存都需要系统调用。 go...
  • 1.Go goroutine的底层实现原理?

    1.Go goroutine的底层实现原理? 概念 底层数据结构 状态流转 创建 阻塞 唤醒 退出 1.Go goroutine的底层实现原理? 概念 Goroutine可以理解为一种Go语言的协程(轻量级线程),是Go支持高并发的基础,属于用户态的线程,由Go runtime管理而不是操作系统。 底层数据结构 type g ...
  • 1.有哪些规范我们应该遵循

    开发流程规范 项目开发规范 go项目开发流程的规范 代码分支管理规范 - git开发(不分语言) 代码分支开发规范 commit规范 go - 代码规范 uber提供的代码规范 go - 代码目录规范 代码风格不统一 目录杂乱无章 - 维护性很差 错误码的处理 常见的项目类型: api服务 非api服务 命令行工具 deamonset服务:比...
  • 38.讲一下set的原理,Java 的HashMap和 go 的map底层原理

    讲一下set的原理,Java 的HashMap和 go 的map底层原理 讲一下set的原理,Java 的HashMap和 go 的map底层原理 题目来源:深信服 答案1: 1. Set原理: Set特性: 1. 不包含重复key. 2.无序.如何去重:通过查看源码add(E e)方法,底层实现有一个map,map是HashMap,...
  • 193.Go的数据结构的零值是什么?

    Go的数据结构的零值是什么? Go的数据结构的零值是什么? 题目来源:Shein 答案: 所有整型类型:0 浮点类型:0.0 布尔类型:false 字符串类型:”” 指针、interface、切片(slice)、channel、map、function:nil Go的零值初始是递归的,即数组、结构体等类型的零值初始化就是对其组成元素...
  • 33.go 的锁是可重入的吗?

    go 的锁是可重入的吗? go 的锁是可重入的吗? **题目来源:**网易 答案1: 不是可重入锁。 讨论这个问题前,先解释一下“重入”这个概念。当一个线程获取到锁时,如果没有其他线程拥有这个锁,那么这个线程就会成功获取到这个锁。线程持有这个锁后,其他线程再请求这个锁,其他线程就会进入阻塞等待的状态。但是如果拥有这个锁的线程再请求这...
  • 355.go性能调优怎么做的?

    go性能调优怎么做的? go性能调优怎么做的? 参考解析 题目来源:度小满 答案:fly 内存优化 A、将小对象合并成结构体一次分配,减少内存分配次数Go runtime底层采用内存池机制,每个span大小为4k,同时维护一个cache。cache有一个0到n的list数组,list数组的每个单元挂载的是一个链表,链表的每个节点就是一...