[想法] meaningless things
晾衣架
因为寝室阳台上的空调外机比较低,为了让晒在外面的衣服能被吹到(这样就能更快地干),我想到了“串联” 晾衣架的方法。
然后我突然意识到:
把晾衣架串起来悬挂——链表。
除了下一个晾衣架外,我们还可以在每个晾衣架上挂上不同的衣物——数据域。
因为我们可以观测到链表整体的状态,所以这个链表支持随机访问。
但晾衣架可不仅仅只能挂一个晾衣架而已——遂形成了树。
那天晚上,我做了一件非常无聊的事,就是用我所有的晾衣架搭了一个深度为 4 的完全二叉树。
当然,为了保证结构稳定性,它是 平衡 的(这里的 “平衡” 是广义上的,需要与排序树中的平衡概念相区别,因为我没有定义衣物之间的偏序关系)
锁
到晚上了大家都要洗澡,但是同一时间内只有一个人可以占用卫生间。
于是那个人进卫生间后要锁门——acquire lock。
洗完之后,他会告诉下一个人可以洗了——conditional variable。
然后解锁——release lock。
同时,等着洗澡的大家都知道了这一消息——wake up。
然而只有一个人能进入卫生间,于是这个人又和前一个人一样对卫生间加锁。
会不会出现 deadlock 呢?一般来说不会,因为大家的脾气都很好。
此外,洗澡不是 lockfree 的,也不能使用 atomic。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理