IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> golang面试题总结 -> 正文阅读

[数据结构与算法]golang面试题总结

go channel close后读写

非阻塞读,panic写
nil的channel,无论收发都会阻塞

io多路复用,select/poll/epoll的区别

select原则上是通过遍历fd句柄,查找到可读的句柄,所以时间复杂度为O(N),epoll是将已经就绪的fd推送给应用层,所以时间复杂度为O(1)
select由于数据结构原因支持的句柄最大值为1024/2048个,poll为链表型结构,句柄无最大值。
epoll存储fd为红黑树结构,fd就绪后存储在就绪链表中,调用回调函数唤醒epoll_wait
https://blog.csdn.net/nanxiaotao/article/details/90612404

Linux进程调度原理

https://blog.csdn.net/zhoutaopower/article/details/86290196

进程间通信的方法

无名管道、有名管道、内核消息队列、共享内存、信号量、信号、socket

slice和array的区别

https://blog.csdn.net/u010918487/article/details/85490028

interface理解

是声明多个方法的集合,如果目标类型实现了接口中定义的所有方法,那么就视为实现了该接口

type iface struct {
	tab *itab
	data unsafe.Pointer
}

tab中包含三个字段,接口类型名称/接口方法集,实际对象类型,实际方法地址
只有当两个字段都为空时,才能和nil做判断

channel理解

type hchan struct {
	dataqsiz uint
	buf unsafe.Pointer
	elemsize uint16
	eletype *_type
}

https://mp.weixin.qq.com/s?__biz=MzUzMjk0ODI0OA==&mid=2247483766&idx=1&sn=eb605a64bed0b2066a12083f26fb04b6&chksm=faaa3501cdddbc177121ba14a6604743d5ea881ca8299d5609ac8eb9b6eca4f2a142ad5aabfd&token=1213124593&lang=zh_CN#rd

waitGroup理解

https://zhuanlan.zhihu.com/p/344973865

session存储

在分布式情况下session大都有两种存储策略,一种是通过hash将相同用户的请求打到同一台服务器上,这时只需要在当前机器上存储session就可以了;另外一种也可以设计一个session服务,专门存储用户session信息,或者直接使用缓存进行存储

map理解

https://studygolang.com/articles/14583
该文章的扩容触发条件有待还缺少了溢出桶的个数判断条件
在向 map 插入新 key 的时候,会进行条件检测,符合下面这 2 个 条件,就会触发扩容:

1 装载因子loadFactor := count / (2^B) 超过阈值,源码里定义的阈值是 6.5,此时会扩充一倍的bucket数量

2 overflow 的 bucket 数量过多:当 B 小于 15,overflow 的 bucket 数量超过 2^B;当 B >= 15,如果 overflow 的 bucket 数量超过 2^15,此时不会扩充Bucket,而是对原bucket做内存整理

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-08-25 12:27:44  更:2021-08-25 12:28:06 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/29 8:26:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计