首页 > 一道技术面试题

一道技术面试题

有一个展会只能容纳1000人,有6个门,每个门几率是一样的,求怎么样设计这个门禁系统,不让大厅的人超过1000人,情况有:1,刚开展会,里面还没人 ,大部分是进的人 2.展会开到一半,出入的人差不多

=====================
update

分2种情况是考虑,乐观锁,悲观锁,不过大家不要被我的提示给迷惑的,我希望不要局限思维。


这不就是一个容量为1000的阻塞队列吗?

三个消费者,三个提供者.


这不就是最简单的PV锁嘛。不过很显然,单纯的PV锁效率会比较低。所以题目的要求是需要根据不同的情况来进行优化。
第一种情况下出题者的意思似乎是要利用ReadWriteLock。因为该题的特殊情况,所以不用考虑出去的时候的同步问题。那么可以出去的时候上读锁,进去的时候上写锁。或者更准确的说法是共享锁和排它锁。
第二种情况下由于出入的人差不多。所以光用读写锁已经没有多大作用了。这时候可以考虑提前申请配额。比如每个门配额为空时自动申请n个额度,除非里面的空位已经不多。这种情况下锁的频率会降到原来的n分之1。

【热门文章】
【热门文章】