前言 从网上找了一些面试题,觉得有意思的我都记录下来,自己学习和大家一起学习吧. 有些初级的题目只放答案,一些值得探讨的问题我会写上我自己的分析过程,希望大家多多交流. 原文链接 选择题 1.[初级]下面属于关键字的是()查看答案 A. func B. def C. struct D. class 参考答案:AC 2.[初级]定义一个包内全局字符串变量,下面语法正确的是()查看答案 A. var str string B. str := "" C. str = ""
1.go test命令是一个按照约定和组织进行测试的程序2.竞争检查器 go run -race 附带一个运行期对共享变量访问工具的test,出现WARNING: DATA RACE 说明有数据竞争3.理想情况下是应该避免掉多余的工作的,称为duplicate suppression(重复抑制/避免) 4.设计并发,不重复,无阻塞 cache 1.并发: go func(){}()直接启动新的goroutine来实现 2.并发安全:使用sync.Mutex 互斥锁来实现 3.无阻塞:get之前锁
Golang使用Groutine和channels实现了CSP(Communicating Sequential Processes)模型,channles在goroutine的通信和同步中承担着重要的角色.在GopherCon 2017中,Golang专家Kavya深入介绍了 Go Channels 的内部机制,以及运行时调度器和内存管理系统是如何支持Channel的 以一个简单的channel应用开始,使用goroutine和channel实现一个任务队列,并行处理多个任务. func ma
BP-Wrapper:无锁竞争的替换算法系统框架 最近看了一个golang的高性能缓存ristretto,该缓存可以很好地实现如下功能: Concurrent High cache-hit ratio Memory-bounded (limit to configurable max memory usage) Scale well as the number of cores and goroutines increases Scale well under non-random key ac