IT书架 本次搜索耗时 0.065 秒,为您找到 752 个相关结果.
  • 295.两个协程交替打印一个数组,使数组中的数据按顺序输出

    两个协程交替打印一个数组,使数组中的数据按顺序输出 答案: 两个协程交替打印一个数组,使数组中的数据按顺序输出 参考解析 题目来源:小米 答案: 使用两个channel,一个专门用于通信的 channel,另一个用于输出消息,使用两个协程进行打印数组,一个协程进行数组的访问,也能将此协程改为 main 函数的主协程。下面这种写法在...
  • 原型模式

    原型模式 模式动机 Go语言实现 prototype.go prototype_test.go 原型模式 模式动机 原型模式使对象能复制自身,并且暴露到接口中,使客户端面向接口编程时,不知道接口实际对象的情况下生成新的对象。 原型模式配合原型管理器使用,使得客户端在不知道具体类的情况下,通过接口管理器得到新的实例,并且包含部分预设定配置...
  • 275.go中的map?分段锁拆了几个分片?

    go中的map?分段锁拆了几个分片? 答案: go中的map?分段锁拆了几个分片? 参考解析 题目来源:知乎 答案: 因为golang的原生map是非并发安全的,所以为了保证map的并发安全,最简单的方式就是给map加锁。直接对一个map加锁,当访问map的请求越来越多,都竞争这一把锁使得并发访问变慢。 分段锁是一种锁的设计,并不是...
  • 393.channelnobuffer以及buffer的区别

    channelnobuffer以及buffer的区别 channelnobuffer以及buffer的区别 题目来源:畅天游 答案: (1)无缓冲的通道保证进行发送和接收的 goroutine 会在同一时间进行数据交换;有缓冲的通道没有这种保证。 (2)声明无缓冲 channel 的方式是不指定缓冲大小的: package main ...
  • 575.go语言中通道传输过程涉及到数据copy吗

    在Go语言中,通过通道(channel)传递数据时,并不会直接进行数据的复制(deep copy)。通道只是传递指向数据的指针或者值的引用。这取决于数据的类型。 如果传递的是值类型(如基础类型如int, float32等),或者是定义了Copy方法的类型(如[]T切片),那么在发送时会创建一个数据的副本。但如果传递的是指针类型,那么在发送时不会复制数据,而...
  • 238.go channel close后读的问题 - name: keywords

    go channel close后读的问题 - name: keywords 答案: go channel close后读的问题 - name: keywords 参考解析 题目来源:UCLOUD 答案: channel作为传递消息的通道,对他的操作无非有三种,向channel发送值、从channel中取值,关闭channel。 对...
  • 21.项目管理:如何通过 Makefile 来高效管理你的项目?

    为什么要通过 Makefile 管理项目? 如何通过 Makefile 管理项目? 如何设计 Makefile 结构? 高效 Makefile 开发实战 小结 提示:本节课最终代码为:feature/s27 。 在我们完成了应用框架的构建、功能开发、静态代码检查等基本功能之后,是时候重新梳理下如何高效管理一个相对稳定的项目了。之所以在这个...
  • 3.Go 互斥锁允许自旋的条件?

    3.Go 互斥锁允许自旋的条件? 3.Go 互斥锁允许自旋的条件? 线程没有获取到锁时常见有2种处理方式: 一种是没有获取到锁的线程就一直循环等待判断该资源是否已经释放锁,这种锁也叫做自旋锁 ,它不用将线程阻塞起来, 适用于并发低且程序执行时间短的场景,缺点是cpu占用较高 另外一种处理方式就是把自己阻塞起来,会释放CPU给其他线程 ,内核会将线...
  • 318.golang怎么协调并发协程的调度

    golang怎么协调并发协程的调度 golang怎么协调并发协程的调度 题目来源: 百度 答案: 使用channel+waitgroup协调并发的调度 func main (){ ch := make ( chan int ) var wg sync . WaitGroup wg . Add ...
  • 382.go中如何使遍历map变得有序

    go中如何使遍历map变得有序 go中如何使遍历map变得有序 题目来源:百度 答案: 使用切片slice,存储key值,sort排序,按key值访问map中的值; import "sort" var m map [ string ] string var keys [] string for k := r...