Может ли Threadpoolexecutor переключать свою блокировкуQueue после запуска? - PullRequest
0 голосов
/ 31 марта 2019

Может ли Threadpoolexecutor изменить свой уровень блокировки после запуска?Я использую несколько threadpoolexecutors в моем процессе.Я не хочу нарушать максимальное количество потоков сверх определенного числа в моем процессе.Вот почему я подумал об идее переключения очереди блокировки моего пула потоков на более занятую очередь блокировки.Но я не вижу ни одной функции в классе ThreadpoolExecutor, которая бы обеспечивала возможность переключения блокировки.Что может быть причиной этого?

Ответы [ 2 ]

0 голосов
/ 01 апреля 2019

Неизменяемые объекты обычно предпочитаются в современных практиках программирования.Это обычно делает вещи ... проще в отношении роста объектной модели и будущих улучшений (и нет, я не считаю подход Python «Давайте все будем ответственными взрослыми» как современный ради аргумента).

Что касается решения вашей проблемы, вы, возможно, могли бы пройти умную реализацию "Делегирование" BlockingQueue, которая будет реализовывать стандартный интерфейс, но обеспечит его некоторым механизмом переключения очередей, управляемым изнутри или снаружи, поскольку ваша спецификация требует

0 голосов
/ 31 марта 2019

Видимо threadpoolexecutor дает доступ к своей очереди блокировки. Я могу добиться того же поведения, перенося задачи из одной очереди в другую.

...