#牛客AI配图神器#面试时间:2024-09-11面试时长:40分钟项目提问● 这个基于数据库乐观锁,如何实现?● 用户量变大之后,如何优化?● 这个Lua脚本如何写的?● 切换成Redis如何实现乐观锁?● 假设锁的超时时间设置成10s,一个线程正常执行1s,那要是一个任务执行11s,另一个线程拿锁会发生什么?● 往key加入线程id,那分布式环境下?Golang1. Channel底层实现a. 写等待队列已有goroutine,过来另一个写命令,如何?b. 数组有数据且写等待队列有goroutine,过来另一个读命令,如何?2. Mutex底层实现a. 介绍自旋?b. 介绍atomic包叭i. atomic包是如何实现的?ii. 具体什么硬件指令实现?手撕二叉树右视图func RightD(root *Tree) []int { queue := []*Tree{} front, rear := 0, 0 last := root res := []int{} queue = append(queue, root) rear++ for front != rear { node := queue[front] front++ if node.Left != nil { queue = append(queue, node.Left) rear++ } if node.Right != nil { queue = append(queue, node.Right) rear++ } if node == last { res = append(res, node.Data) last = queue[rear-1] } } return res}type Tree struct { Data int Left, Right *Tree}�反问