Политика справедливости синхронной очереди в bean-компоненте ThreadPoolTaskExecutor?


person zkristic    schedule 24.03.2015    source источник


Ответы (1)


Я не уверен, зачем вам нужна справедливая синхронная очередь и управление доступом к потоку в порядке FIFO. Я никогда не видел этого в реальности, а также не уверен, что ваше приложение будет работать правильно, даже если вы управляете FIFO.

Но все же, если вы хотите, вы можете расширить ThreadPoolTaskExecutor и просто переопределить createQueue() следующим образом:

public class FairThreadPoolTaskExecutor extends ThreadPoolTaskExecutor {
    protected BlockingQueue<Runnable> createQueue(int queueCapacity) {
        return (BlockingQueue) (queueCapacity > 0 ? new LinkedBlockingQueue(queueCapacity) : new SynchronousQueue(true));
    }
}
person hemant1900    schedule 24.03.2015
comment
Спасибо, это один из способов сделать это ... Я думал, что может быть свойство для исполнителя задач пула потоков, но похоже, что его нет. Ваше здоровье - person zkristic; 25.03.2015