[想法] meaningless things

晾衣架

因为寝室阳台上的空调外机比较低,为了让晒在外面的衣服能被吹到(这样就能更快地干),我想到了“串联” 晾衣架的方法。

然后我突然意识到:

把晾衣架串起来悬挂——链表。

除了下一个晾衣架外,我们还可以在每个晾衣架上挂上不同的衣物——数据域。

因为我们可以观测到链表整体的状态,所以这个链表支持随机访问。

但晾衣架可不仅仅只能挂一个晾衣架而已——遂形成了树。

那天晚上,我做了一件非常无聊的事,就是用我所有的晾衣架搭了一个深度为 4 的完全二叉树。

当然,为了保证结构稳定性,它是 平衡 的(这里的 “平衡” 是广义上的,需要与排序树中的平衡概念相区别,因为我没有定义衣物之间的偏序关系)

到晚上了大家都要洗澡,但是同一时间内只有一个人可以占用卫生间。

于是那个人进卫生间后要锁门——acquire lock。

洗完之后,他会告诉下一个人可以洗了——conditional variable。

然后解锁——release lock。

同时,等着洗澡的大家都知道了这一消息——wake up。

然而只有一个人能进入卫生间,于是这个人又和前一个人一样对卫生间加锁。

会不会出现 deadlock 呢?一般来说不会,因为大家的脾气都很好。

此外,洗澡不是 lockfree 的,也不能使用 atomic。

posted @   ZXPrism  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示