考虑一个为不同类型的工作提供技术人员的组织。
每种工作类型的完成时间和技术人员数量都有所不同。例如,作业类型1需要2名技术人员并且需要1小时才能完成,作业类型2需要1名技术人员并且需要30分钟才能完成。除非为他们分配任何工作,否则所有技术人员始终可用(组织工作时间为09:00-18:00)。
客户可以在线请求服务,并且应根据所选的作业类型显示可用的时间段。
没有其他限制,例如每位技术人员的最小班次或最大班次,并且还假设所有技术人员都具备相同的技能。
生成时段的最佳方法是什么?
答案 0 :(得分:1)
我认为您所描述的是Producer-Consumer Problem
的变体,其中您有技术人员消耗的工作。
正如您所说,所有技术人员具有相同的技能,因此您无需为手头的工作找到最佳技术人员。因此,为了解决这个问题,您需要的只是一个技术人员库(您可以将其视为一个线程池),每次工作到来时,您都会先按照先到先得的原则分配一名技术人员。基础。
如果没有可用的技术人员,那么作业将排队等候,直到技术人员可用。