Java ThreadPoolExecutor - достучаться до working threads

User avatar
Интеррапт
Уже с Приветом
Posts: 17281
Joined: 07 Sep 2011 10:05
Location: Seattle, WA

Re: Java ThreadPoolExecutor - достучаться до working threads

Post by Интеррапт »

Palych wrote:
Интеррапт wrote:В то время, как если иметь свой hash map, куда добавлять/удалять runntable/thread в beforeExecute/afterExecute, то ты как бы всегда знаешь активные runnable и на каком thread он выполняется. И всегда можешь послать interrupt() этому потоку (ну и это уже дело автора, корректно имплементировать runnable, для обработки interrupt).
IMHO, в этой hash map лучше хранить не runnable, а то что надобкаким но обрабатывать/сигналить/убивать.
Так будет понятнее и безопаснее.
Это каким образом? Создавать еще один промежуточный класс вместо того, чтобы использовать основной класс?
Alexandr
Уже с Приветом
Posts: 3647
Joined: 23 May 2010 15:10

Re: Java ThreadPoolExecutor - достучаться до working threads

Post by Alexandr »

Интеррапт wrote: Я, честно говоря, вообще не понимаю, в чем смысл собственно получить доступ к списку threads, так мы от ТС этого и не добились. Ведь по большму счету, у вас может быть, например, с десяток threads в пуле и штук 100 разных Runnable's собственно с задачами, которые переодически на этом десятке thread-ов будут выполнятся. В чем тогда поинт получить ссылку на worker thread, если ты все равно не знаешь, какой в данный момент на этом thread выполняется runnable и как следствие ты с этим runnable не можешь взаимодействовать? В то время, как если иметь свой hash map, куда добавлять/удалять runntable/thread в beforeExecute/afterExecute, то ты как бы всегда знаешь активные runnable и на каком thread он выполняется. И всегда можешь послать interrupt() этому потоку (ну и это уже дело автора, корректно имплементировать runnable, для обработки interrupt).
я уже там выше писал, в чем смысл получить доступ с списку потоков = залеть руками в абстракцию, что-то вроде как через reflection к private полям лезть
Palych
Уже с Приветом
Posts: 13684
Joined: 16 Jan 2001 10:01

Re: Java ThreadPoolExecutor - достучаться до working threads

Post by Palych »

Интеррапт wrote:
Palych wrote:
Интеррапт wrote:В то время, как если иметь свой hash map, куда добавлять/удалять runntable/thread в beforeExecute/afterExecute, то ты как бы всегда знаешь активные runnable и на каком thread он выполняется. И всегда можешь послать interrupt() этому потоку (ну и это уже дело автора, корректно имплементировать runnable, для обработки interrupt).
IMHO, в этой hash map лучше хранить не runnable, а то что надо как-то обрабатывать/сигналить/убивать.
Так будет понятнее и безопаснее.
Это каким образом? Создавать еще один промежуточный класс вместо того, чтобы использовать основной класс?
Может быть и "основной" класс, смотря как оно сделано. Главное чтобы не Runnable.
Runnable должен раннить, чтобы была одна точка входа и выхода... Впрочем это мелочь. Never mind.
User avatar
Flash-04
Уже с Приветом
Posts: 63430
Joined: 03 Nov 2004 05:31
Location: RU -> Toronto, ON

Re: Java ThreadPoolExecutor - достучаться до working threads

Post by Flash-04 »

Ужасно смотреть как попираются принципы инкапсуляции :)
Not everyone believes what I believe but my beliefs do not require them to.

Return to “Вопросы и новости IT”