问题是关于守护程序线程将如何向非守护程序线程提供服务
我会使用执行程序服务。如果要从守护线程返回值,可以使用a
Callable<ReturnType>而不是a
Runnable。
// creating a thread pool.ExecutorService service = Executors.newSingleThreadExecutor(new ThreadFactory() { @Override public Thread newThread(Runnable r) { // creating a thread. Thread two = new Thread(r, "two"); // making it a daemon thread. two.setDaemon(true); return two; }});for(int i=0;i<10;i++) // creating a task and submitting it. service.submit(new Runnable() { @Override public void run() { System.out.println("["+Thread.currentThread().getName()+"] - Hello World."); Thread.yield(); } });service.shutdown();版画
[two] - Hello World.[two] - Hello World.[two] - Hello World.
首先,它创建一个带有工作队列的线程池。线程池具有创建线程的因素,在这种情况下,线程池具有给定名称的守护程序。
其次,存在一个循环,该循环将10个任务添加到队列中以便执行程序线程执行。
最后,它在完成服务后就停止了该服务(这很少需要)



