Guava contains the simple and very useful class ThreadFactoryBuilder, which is most commonly used to set the thread names when using an Executor. This should always be done: thread names pop up in stack trace, when monitoring a running application with VisualVM, when printing deadlocks and so on. Doing this with ThreadFactoryBuilder is very simple: Executors.newCachedThreadPool( new ThreadFactoryBuilder().setNameFormat("my-name-%d").build()); The threads in the pool will be named my-name-1, m...