IT书架 本次搜索耗时 0.336 秒,为您找到 752 个相关结果.
  • 145.channel主要做什么事情

    channel主要做什么事情 channel主要做什么事情 题目来源:好未来 答案: 在 go 中遵循的原则有一条:不要通过共享内存的方式进行通信,而是应该通过通信的方式共享内存 go 采用了 CSP 模型来实现通信,而 channel 则是实现中的重要桥梁 由于 channel 分为有缓存和无缓存两种类型 对于无缓存的 channe...
  • 416.channel和共享内存有什么优劣势?

    channel和共享内存有什么优劣势? channel和共享内存有什么优劣势? 参考解析 答案: Go的设计思想就是, 不要通过共享内存来通信,而是通过通信来共享内存,前者就是传统的加锁,后者就是Channel。共享内存是在操作内存的同时,通过互斥锁、CAS等保证并发安全,而channel虽然底层维护了一个互斥锁,来保证线程安全,但其可以理解为先...
  • 8.Go defer关键字的实现原理?

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

    go怎么实现封装继承多态 go怎么实现封装继承多态 题目来源 :好未来 答案1: 封装 封装就是把抽象出的字段和字段的操作封装在一起,数据被保护在内部,程序的其他包只有通过被授权的操作(方法)才能对字段进行操作。实现如下面代码所示,需要注意的是,在golang内,除了slice、map、channel和显示的指针类型属于引用类型外,其它类...
  • 360.Go创建协程的过程

    Go创建协程的过程 答案: Go创建协程的过程 参考解析 题目来源:虾皮 答案: 想要启动一个新的 Goroutine 来执行任务时,我们需要使用 Go 语言的 go 关键字,编译器会通过 cmd/compile/internal/gc.state.stmt 和 cmd/compile/internal/gc.state.cal...
  • 274.go标准库的mutex介绍

    go标准库的mutex介绍 答案: go标准库的mutex介绍 参考解析 题目来源:知乎 答案: Go 号称是为了高并发而生的,在高并发场景下,势必会涉及到对公共资源的竞争。当对应场景发生时,我们经常会使用 mutex 的 Lock() 和 Unlock() 方法来占有或释放资源。 mutex 状态标志位 mutex 的 sta...
  • 16.go struct 能不能比较

    go struct 能不能比较 go struct 能不能比较 答案1: 需要具体情况具体分析,如果struct中含有不能被比较的字段类型,就不能被比较,如果struct中所有的字段类型都支持比较,那么就可以被比较。 不可被比较的类型:① slice,因为slice是引用类型,除非是和nil比较② map,和slice同理,如果要比较两个ma...
  • 8.消费者客户端开发

    消费者客户端开发 必要的参数配置 订阅主题和分区 消费者golang客户端开发 Go 代码实现 代码分析 消费者客户端开发 在了解了消费者与消费组之间的概念之后,我们就可以着手进行消费者客户端的开发了。在 Kafka 的历史中,消费者客户端同生产者客户端一样也经历了两个大版本:第一个是于 Kafka 开源之初使用 Scala 语言编写的客户...
  • 74.struct的传递场景

    struct的传递场景 struct的传递场景 参考解析 题目来源 :映客 答案1: struct的特点 用来自定义复杂数据结构 struct里面可以包含多个字段(属性) struct类型可以定义方法,注意和函数的区分 struct类型是值类型 struct类型可以嵌套 GO语言没有class类型,只有struct类型 特...
  • 8. 什么是grpc和protobuf

    grpc protobuf grpc gRPC 是一个高性能、开源和通用的 RPC 框架,面向移动和 HTTP/2 设计。目前提供 C、Java 和 Go 语言版本,分别是:grpc, grpc-java, grpc-go. 其中 C 版本支持 C, C++, Node.js, Python, Ruby, Objective-C, PHP 和 C#...