I have one query that is I have developed a code below of multiple threads named thread one and thread two, below is the code ..
class multip implements Runnable {
public void run() {
for (int i = 0; i < 20; i++) {
try {
Thread.sleep(500);
System.out.println(Thread.currentThread().getName());
System.out.println("i");
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
public class MultiThread3 {
public static void main(String... a) {
multip obj = new multip();
Thread t1 = new Thread(obj);
t1.currentThread().setName("one");
t1.start();
Thread t2 = new Thread(obj);
t2.currentThread().setName("two");
t2.start();
}
}
Now I want thread two be set as daemon thread and it should provide some service to thread one it could be any kind of service but at last What I was trying to achieve is that a daemon thread providing some service to non daemon thread. Please advise how to achieve this.The question is about of how the daemon thread will provide the service to non daemon thread..?
I would use an executor service. If you want to return a value from the daemon thread, you can use a
Callable<ReturnType>instead of aRunnable.prints
First it creates a thread pool with a work queue. The thread pool has a factor which creates threads, in this case with a given name which is a daemon.
Secondly there is a loop which add 10 tasks to the queue for the executors thread(s) to execute.
Finally it stops the service when it has finished with it (this is rarely needed)