【发布时间】:2018-03-24 23:23:01
【问题描述】:
上周我进行了一次电话采访,但遇到了一个问题:
银行 1 有 5 名柜员,每个柜员一次服务一位客户 独立;银行 2 有 5 个柜员,共享一个客户队列 服务。你更喜欢哪家银行?为什么?
我不知道面试官想通过这个问题知道什么。我能做的只是说,银行2更好,因为大多数银行只有一个队列,一个队列可以确保如果一个柜员卡住了,没有人会等太久。
但我发现面试官似乎不满意。
有人知道这个问题的最佳答案吗?
【问题讨论】:
上周我进行了一次电话采访,但遇到了一个问题:
银行 1 有 5 名柜员,每个柜员一次服务一位客户 独立;银行 2 有 5 个柜员,共享一个客户队列 服务。你更喜欢哪家银行?为什么?
我不知道面试官想通过这个问题知道什么。我能做的只是说,银行2更好,因为大多数银行只有一个队列,一个队列可以确保如果一个柜员卡住了,没有人会等太久。
但我发现面试官似乎不满意。
有人知道这个问题的最佳答案吗?
【问题讨论】:
你的回答没有考虑面试官问的真正问题——“你如何看待这类问题?”。您给出的答案是“其他人这样做,所以就那样做”。那是一种逃避,这就是为什么它不令人满意。相反,请考虑他们将单线程和多线程作为操作进行比较。讨论每个的优点和缺点。根据技术问题,讨论您更喜欢其中一个的原因。您只解决了一种极端情况——一名出纳员“卡住”了。如何优化等待时间、考虑每个站点执行的任务类型等?
面试官关心的是你的想法,而不是你给出的答案。
【讨论】:
对于银行 1,您有 5 个柜员和 5 条线路,每个柜员一个。这意味着如果有 5 个人为第一个柜员排队,他们将需要等待并由该柜员一次处理一个,而其他 4 位柜员一直无所事事。使用 bank2,您有 5 个柜员和 1 条线路。如果 5 个人全部排队,他们将被分散到五个柜员处,并同时得到帮助。所以银行 2 的设计效率更高。
【讨论】: