Wie ändert man den Namen von Threads in einem ExecutorService? [Duplikat]

7

Ich verwende einen ExecutorService, um einige Callables auszuführen, aber der Name der Threads ist wie fixed-pool-1-thread-1.

Wie ändere ich den Namen der Threads? Wenn es nicht möglich ist, gibt es eine andere Möglichkeit, Callables auszuführen, dass ich den Namen von threadS festlegen kann?

    
Renato Dinhani 25.05.2011, 14:34
quelle

3 Antworten

11

Sie müssen eine ExecutorService Implementierung verwenden, mit der Sie ThreadFactory 1 zum Erstellen von Threads, z. B. ThreadPoolExecutor . Übergeben Sie eine Instanz, die Threads mit den richtigen Namen erstellt.

Es gibt auch eine handliche Klasse in commons-lang, die es erlaubt, Thread-Namen mit einem Muster anzugeben: %Co_de% . Dadurch müssen Sie keine BasicThreadFactory -Unterklasse erstellen, nur um das Benennungsverhalten bereitzustellen.

    
scompt.com 25.05.2011, 14:37
quelle
5

Guava hat fast immer das, was Sie brauche . ThreadFactory namedThreadFactory = new ThreadFactoryBuilder().setNameFormat("my-sad-thread-%d").build() und gib es an deine ExecutorService weiter.

    
pathikrit 17.03.2012 09:05
quelle
3

Ein schneller und schmutziger Weg;

%Vor%     
Kirk 18.07.2014 07:47
quelle