Проблема в том, что такие книги, как JCIP, защищают нас от использования Executors для запуска Threads. Поэтому я стараюсь не использовать Thread.start (). Я не уверен, что обязательно выберу конкретный способ делать вещи, основываясь на простоте. Должна быть более убедительная причина, нет?
Убедительная причина использования java.util.concurrent заключается в том, что многопоточное программирование очень сложно. Java предлагает инструменты для этого (потоки, синхронизированные и volatile ключевые слова), но это не значит, что вы можете безопасно использовать их напрямую, не стреляя себе в ногу: либо слишком много синхронизация, приводящая к ненужным узким местам и тупикам, или слишком мала, что приводит к нестабильному поведению из-за условий гонки).
С java.util.concurrent вы получаете набор утилит (написанных экспертами) для наиболее распространенных шаблонов использования, которые вы можете просто использовать, не беспокоясь о том, что вы правильно поняли вещи низкого уровня.
В вашем конкретном случае, однако, я не совсем понимаю, зачем вам вообще нужен отдельный поток, вы могли бы также использовать основной:
public static void main( String[] args )
{
Runnable t = new Superdaemon();
t.run();
}
Исполнители предназначены для задач, которые вы хотите запускать в фоновом режиме (когда у вас есть несколько параллельных задач или когда ваш текущий поток может продолжать делать что-то еще).