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