可以使用ScheduledThreadPool接受不同类型的线程吗?

时间:2014-12-02 10:09:12

标签: java multithreading executorservice scheduledexecutorservice

解决我有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秒钟来处理每个项目。

1 个答案:

答案 0 :(得分:0)

您必须向ThreadFactory提供自定义ExecutorService。您的ThreadFactory将允许您创建适合您需求的新主题。

ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory)

更多信息here,在文档中