Thread creation cleanup; always use named threads

I went through every single place that instantiates a thread or thread
pool and cleaned up the corresponding code a bit in some cases, and made
sure that we always pass in a name.

PiperOrigin-RevId: 220099627
diff --git a/src/main/java/com/google/devtools/build/lib/server/IdleServerTasks.java b/src/main/java/com/google/devtools/build/lib/server/IdleServerTasks.java
index d8cb41a..378fbf8 100644
--- a/src/main/java/com/google/devtools/build/lib/server/IdleServerTasks.java
+++ b/src/main/java/com/google/devtools/build/lib/server/IdleServerTasks.java
@@ -15,6 +15,7 @@
 package com.google.devtools.build.lib.server;
 
 import com.google.common.base.Preconditions;
+import com.google.common.util.concurrent.ThreadFactoryBuilder;
 import com.google.devtools.build.lib.profiler.AutoProfiler;
 import com.google.devtools.build.lib.util.StringUtilities;
 import java.lang.management.ManagementFactory;
@@ -35,7 +36,9 @@
 
   /** Must be called from the main thread. */
   public IdleServerTasks() {
-    this.executor = new ScheduledThreadPoolExecutor(1);
+    this.executor = new ScheduledThreadPoolExecutor(
+        1,
+        new ThreadFactoryBuilder().setNameFormat("idle-server-tasks-%d").build());
   }
 
   /**