It pretty much has to involve threads at some level. If you're calling another method within your own program and want to continue without waiting for that method to return, it will have to run on another thread. If you use some API to call outside your program, say JMS to a queueing system, the external program can do the threading.
If you are feeling a bit intimidated by threads, relax. I put off learning them for quite a while, but found some very good uses after a while. You can have a fine time with Java and never do any threads and there are some environments like EJB servers where you are forbidden to mess with your own threads. But I'd encourage you to Google for a tutorial, play with some examples and get a good level of comfort with threads. They are good clean fun, and a useful way to make programs faster or at least feel faster some times.
Feel free to jump up to the threads forum and talk through the learning process with the gang.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi