I'd take a look at some tutorials for threads.
http://docs.oracle.com/javase/tutorial/essential/concurrency/runthread.html
The tutorial shows you that you can fork a thread by implementing Runnable
:
public class ApplicationServerImpl extends UnicastRemoteObject
implements ApplicationServer, Runnable {
...
Then you can fork the thread like:
new Thread(new ApplicationServerImpl()).start();
Implementing Runnable
is better because you can extend other classes.
You also should look into using the ExecutorService
classes which take care of much of the thread work from you:
http://docs.oracle.com/javase/tutorial/essential/concurrency/exinter.html