Класс ThreadPoolExecutor позволяет предоставить пользовательский ThreadFactory для создания новых потоков.Тем не менее, я не понимаю, как эти потоки используются в реализации Sun ThreadPoolExecutor.
Эта реализация создает новый поток следующим образом:
private Thread addThread(Runnable firstTask) {
Worker w = new Worker(firstTask);
Thread t = threadFactory.newThread(w);
if (t != null) {
w.thread = t;
...
} ...
Но в реализации Worker я не вижу, какполе "поток" используется в качестве бегуна.
Кроме того, я не понимаю, как можно обеспечить поток с пользовательским методом "запуска", которые используются повторно (если повторное использование - как в ThreadPoolExecutor - означает "они запускают несколько Runnable")«).Как ThreadPoolExecutor может повторно использовать такие потоки для запуска нескольких Runnable (при условии, что «target» Runnable в классе Thread установлен во время создания и нет установщика).Документация ThreadPoolExecutor выглядит следующим образом:
By supplying a different ThreadFactory, you can alter the thread's name, thread group, priority, daemon status, etc.
Означает ли это, что метод "выполнения" потоков, созданный пользовательской ThreadFactory, не используется?Это единственный способ понять механизм «создание пользовательских потоков + повторное использование потока».