Создание вызываемых нитей в качестве демона
Как я могу сделать вызываемую нить как нить демона?
Вот что я пытаюсь Я пытаюсь выполнить набор потоков, один из которых не завершается и идет в бесконечный цикл. Что он делает, так это основной поток программы, который не завершается, даже если все операторы кода выполняются. После этого основной поток переходит в режим ожидания.
Вот фрагмент кода для того же.
<code>public class MyThread implements Callable<String> { private int value; public MyThread(int value) { this.value = value; } @Override public String call() throws Exception { //Thread.currentThread().setDaemon(true); System.out.println("Executing - " + value); if (value == 4) { for (; ; ); } return value + ""; } } </code>
Основная программа
<code>public class ExecutorMain { public static String testing() { ExecutorService executor = null; List<Future<String>> result = null; String parsedValue = null; try { executor = Executors.newSingleThreadExecutor(); List<MyThread> threads = new ArrayList<MyThread>(); for (int i = 1; i < 10; i++) { MyThread obj = new MyThread(i); threads.add(obj); } result = executor.invokeAll(threads, Long.valueOf("4000"), TimeUnit.MILLISECONDS); //result = executor.invokeAll(threads); for (Future<String> f : result) { try { parsedValue = f.get(); System.out.println("Return Value - " + parsedValue); } catch (CancellationException e) { System.out.println("Cancelled"); parsedValue = ""; f.cancel(true); } } executor.shutdownNow(); } catch (Exception e) { System.out.println("Exception while running threads"); e.printStackTrace(); } finally { List executedThreads = executor.shutdownNow(); System.out.println(executedThreads); for (Object o : executedThreads) { System.out.println(o.getClass()); } } System.out.println("Exiting...."); //System.exit(1); return ""; } public static void main(String[] args) { testing(); } } </code>
Что я понял из моего предыдущего вопроса оВисячие темы в Java в том, что я должен делать свои темы как потоки демонов.