java - 一道技术面试题
天蓬老师
天蓬老师 2017-04-17 15:43:16
0
2
321

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

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

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

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

모든 응답(2)
巴扎黑

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

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

巴扎黑

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

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!