跳至主要內容
Go语言的GPM调度器是什么?
相信很多人都听说过Go语言天然支持高并发,原因是内部有协程(goroutine)加持,可以在一个进程中启动成千上万个协程。那么,它凭什么做到如此高的并发呢?那就需要先了解什么是并发模型。 并发模型 著名的C++专家Herb Sutter曾经说过“免费的午餐已经终结”。为了让代码运行的更快,单纯依靠更快的硬件已经无法得到满足,我们需要利用多核来挖掘并行的...

码说256大约 6 分钟golanggogoroutine源码面试面试总结
goroutine调度器概述
goroutine简介 goroutine是Go语言实现的用户态线程,主要用来解决操作系统线程太“重”的问题,所谓的太重,主要表现在以下两个方面: 创建和切换太重:操作系统线程的创建和切换都需要进入内核,而进入内核所消耗的性能代价比较高,开销较大;; 内存使用太重:一方面,为了尽量避免极端情况下操作系统线程栈的溢出,内核在创建操作系统线程时默认会为其分...

码说256大约 18 分钟golanggogoroutine源码面试面试总结
Golang 常见面试题目解析
Golang 常见面试题目解析 交替打印数字和字母 (q001.md); 判断字符串中字符是否全都不同 (q002.md); 翻转字符串 (q003.md); 判断两个给定的字符串排序后是否一致 (q004.md); 字符串替换问题 (q005.md); 机器人坐标计算 (q006.md); 语法题目 (q007.md); 定时与painc恢复 (q0...

码说256小于 1 分钟golanggogolangmapinterfacestruct源码面试面试总结
交替打印数字和字母
交替打印数字和字母 问题描述 使用两个 goroutine 交替打印序列,一个 goroutine 打印数字, 另外一个 goroutine 打印字母, 最终效果如下: 解题思路 问题很简单,使用 channel 来控制打印的进度。使用两个 channel ,来分别控制数字和字母的打印序列, 数字打印完成后通过 channel 通知字母打印, 字母打印...

码说256小于 1 分钟golanggogolangmapinterfacestruct源码面试面试总结
判断字符串中字符是否全都不同
判断字符串中字符是否全都不同 问题描述 请实现一个算法,确定一个字符串的所有字符【是否全都不同】。这里我们要求【不允许使用额外的存储结构】。 给定一个string,请返回一个bool值,true代表所有字符全都不同,false代表存在相同的字符。 保证字符串中的字符为【ASCII字符】。字符串的长度小于等于【3000】。 解题思路 这里有几个重点,第一...

码说256大约 2 分钟golanggogolangmapinterfacestruct源码面试面试总结
翻转字符串
翻转字符串 问题描述 请实现一个算法,在不使用【额外数据结构和储存空间】的情况下,翻转一个给定的字符串(可以使用单个过程变量)。 给定一个string,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。 解题思路 翻转字符串其实是将一个字符串以中间字符为轴,前后翻转,即将str[len]赋值给str[0],将str[0] 赋值...

码说256小于 1 分钟golanggogolangmapinterfacestruct源码面试面试总结
判断两个给定的字符串排序后是否一致
判断两个给定的字符串排序后是否一致 问题描述 给定两个字符串,请编写程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 这里规定【大小写为不同字符】,且考虑字符串重点空格。给定一个string s1和一个string s2,请返回一个bool,代表两串是否重新排列后可相同。 保证两串的长度都小于等于5000。 解题思路 首先要保证字符串长...

码说256小于 1 分钟golanggogolangmapinterfacestruct源码面试面试总结
字符串替换问题
字符串替换问题 问题描述 请编写一个方法,将字符串中的空格全部替换为“%20”。 假定该字符串有足够的空间存放新增的字符,并且知道字符串的真实长度(小于等于1000),同时保证字符串由【大小写的英文字母组成】。 给定一个string为原始的串,返回替换后的string。 解题思路 两个问题,第一个是只能是英文字母,第二个是替换空格。 源码参考 源码解析...

码说256小于 1 分钟golanggogolangmapinterfacestruct源码面试面试总结
机器人坐标问题
机器人坐标问题 问题描述 有一个机器人,给一串指令,L左转 R右转,F前进一步,B后退一步,问最后机器人的坐标,最开始,机器人位于 0 0,方向为正Y。 可以输入重复指令n : 比如 R2(LF) 这个等于指令 RLFLF。 问最后机器人的坐标是多少? 解题思路 这里的一个难点是解析重复指令。主要指令解析成功,计算坐标就简单了。 源码参考 源码解析 这...

码说256大约 1 分钟golanggogolangmapinterfacestruct源码面试面试总结
语法题目
常见语法题目 一 1、下面代码能运行吗?为什么。 解析 共发现两个问题: 1. main 函数不能加数字。 2. new 关键字无法初始化 Show 结构体中的 Param 属性,所以直接对 s.Param 操作会出错。 2、请说出下面代码存在什么问题。 解析: golang中有规定,switch type的`case T1,类型列表只有一个,那么v ...

码说256大约 5 分钟golanggogolangmapinterfacestruct源码面试面试总结
2
3
4