1. sync包下有哪些同步原语 sync.Mutex sync.RWMutex sync.WaitGroup sync.Map sync.Pool sync.Once sy...

1. sync包下有哪些同步原语 sync.Mutex sync.RWMutex sync.WaitGroup sync.Map sync.Pool sync.Once sy...
1. Redis的使用场景有哪些? 热点数据的缓存 限时业务的运用 计数器相关问题 分布式锁 排行榜相关问题 点赞、好友等相互关系的存储 简单队列 2. Redis数据类型 ...
索引 —— 本质上是一个 B+ 树 1. MySQL InnoDB索引为什么用B+树而不用二叉树 B+树的每个节点可以表示的信息更多,因此整个树更加“矮胖”,这在从磁盘中查找...
古代数学家 张丘建 算经 百钱百鸡题目:公鸡5钱一只 母鸡3钱一只 小鸡1钱三只 现在需要用百钱买百鸡100 买公鸡 20只100 买母鸡 33只100 买小鸡 1...
mysql短连接数暴增 max_connections,Too many connections调高max_connections值(风险)information_schem...
硬件同步原语其实对应的是 Go 语言 atomic 包下的一些原子操作
Linux 查看端口占用情况可以使用 lsof 和 netstat 命令。 lsof lsof(list open files)是一个列出当前系统打开文件的工具。lsof 查...
Go语言的内置函数 copy() 可以将一个数组切片复制到另一个数组切片中,如果加入的两个数组切片不一样大,就会按照其中较小的那个数组切片的元素个数进行复制。copy() 函...
Go语言里对同步的支持主要有五类应用场景: 资源独占:当多个线程依赖同一份资源(比如数据),需要同时读/写同一个内存地址时,runtime需要保证只有一个修改这份数据,并且保...
defer 语句并不会马上执行,而是会进入一个栈,函数 return 前,会按先进后出(FILO)的顺序执行。也就是说最先被定义的 defer 语句最后执行。先进后出的原因是...
数组下标越界(运行时错误) 运行结果: 空指针异常(运行时错误) 运行结果: 类型断言失败(接口转换异常) 运行结果: 通道为空,通道已关闭(写数据) 运行结果: 运行结果:...
输出结果 动态类型在上面已经讲过,动态值是实际分配的值。记住一点:当且仅当动态值和动态类型都为 nil 时,接口类型值才为 nil。上面的代码,给变量 i 赋值之后,i 的...
线性表 在链表中存储的数据元素也叫作结点,一个结点存储的就是一条数据记录。每个结点的结构包括两个部分: 第一是具体的数据值; 第二是指向下一个结点的指针。 链表种类 单向链表...
在一个数组中找出出现次数最多的那个元素的数值处理数据的核心思路是: 第一步,根据原始数组计算每个元素出现的次数; 第二步,根据第一步的结果,找到出现次数最多的元素。 这里的数...
Id: 就是这个线程的唯一标识,当我们发现这个线程有问题的时候,可以通过 kill 命令,加上这个Id值将这个线程杀掉。前面我们说了show processlist 显示的信...
程序优化的最核心的思路 第一步,暴力解法。在没有任何时间、空间约束下,完成代码任务的开发。 第二步,无效操作处理。将代码中的无效计算、无效存储剔除,降低时间或空间复杂度。 第...
复杂度的计算方法遵循以下几个原则 首先,复杂度与具体的常系数无关,例如 O(n) 和 O(2n) 表示的是同样的复杂度。我们详细分析下,O(2n) 等于 O(n+n),也等于...