2015-06-27 2 views
-3

У меня есть ThreadPool исполнитель определяется какПолучить имя в настоящее время активного потока в ThreadPoolExecutor андроида

enter image description here

Теперь, как видно, есть один activeThread. Как я могу получить его имя, я хочу сравнить его с списком потоков отладчика, я не могу найти pool-1-thread-2 где угодно, но есть pool-1-thread-1.

Это активная тема или как я могу получить имя активного потока для сравнения со списком всех запущенных потоков.

ответ

1

Значение threadNumber, скорее всего, увеличивается в ожидании следующего Thread. Обратите внимание, что количество активных потоков и размер пула равны 1, что означает, что пул только до сих пор удалял один поток ..., который был бы pool-1-thread-1.

В более общем понятии есть getName() в Thread, и вы можете использовать выражение часов в отладчике или выходе журнала, чтобы увидеть его. Также обратите внимание, что для получения текущего экземпляра есть Thread.currentThread(). Если вы хотите усложниться, вы можете подклассифицировать Executor.

+0

спасибо за ответ, кажется, что поток застрял в wait(). он зависает, когда потоки вызывают ответ = httpclient.execute (httpGet); Есть ли способ, которым я могу управлять, чтобы прерывать/останавливать или что-то делать с этим. я не уверен, почему он даже зависает здесь –

+0

Запуск вызова ждет ответа и не получает его. Есть проблема с запросом, проблема на стороне сервера или (возможно, менее вероятно) проблема с подключением. Или, поскольку вы звоните с Android, может возникнуть проблема с правами доступа. Я должен был бы узнать больше об этом контексте и увидеть выход журнала, чтобы сузить его. Если у вас есть ссылка на 'Thread', вы можете вызвать' interrupt() ', но это не решит основную проблему. – Dave

Смежные вопросы