解决我有3个现金柜台服务于客户数量的问题。每个计数器花费1秒处理1个项目,除了第三个计数器,需要2秒来处理每个项目。 (例如,客户A在柜台1上有5个项目需要5秒钟才能完成),在柜台C上有3个项目的客户B需要6秒钟。每个客户都有不同的加入队列的时间。
我使用ScheduledExecutorService
来创建相当于现金计数器的线程数。
ScheduledExecutorService scheduledExecutorService =Executors.newScheduledThreadPool(3);
现在我的runnable实现会检查项目数并相应地运行循环。
我根据客户数量提交任务数量。
scheduledExecutorService.schedule(new Runnable(),Timetojoin, TimeUnit.SECONDS);
如何为执行程序服务创建的3个线程分配不同的优先级。由于我的最后一个计数器(线程)需要2秒钟来处理每个项目。
答案 0 :(得分:0)
您必须向ThreadFactory
提供自定义ExecutorService
。您的ThreadFactory
将允许您创建适合您需求的新主题。
ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory)
更多信息here,在文档中