Java Child Threads

H

Hugo

Here is a conundrum...

User authenticates to a web application.....Parent thread is created.

At some point during the user's interaction with the application, I
would like to create a child thread that can perform a task
independent of the parent thread. Whether the child thread is
successful or not should be irrelevant to the parent thread.

And the execution of the child thread's task should not delay the
parent thread....i.e. the parent thread should not wait until the
child thread completes its task.

Is this possible in Java...any pointers on hows to get this started?
 
K

Knute Johnson

Hugo said:
Here is a conundrum...

User authenticates to a web application.....Parent thread is created.

At some point during the user's interaction with the application, I
would like to create a child thread that can perform a task
independent of the parent thread. Whether the child thread is
successful or not should be irrelevant to the parent thread.

And the execution of the child thread's task should not delay the
parent thread....i.e. the parent thread should not wait until the
child thread completes its task.

Is this possible in Java...any pointers on hows to get this started?

That is really what threads are for. There are a million ways to do
this but the simplest is to wrap the code you want to run in another
thread in a Runnable and create a thread and start it.

// parent decides to run a task in another thread
Runnable r = new Runnable() {
public void run() {
// do your thing
}
};
new Thread(r).start();
// the Runnable above is now running concurrently with the parent
// parent continues
 
D

Daniel Pitts

Hugo said:
Here is a conundrum...

User authenticates to a web application.....Parent thread is created.

At some point during the user's interaction with the application, I
would like to create a child thread that can perform a task
independent of the parent thread. Whether the child thread is
successful or not should be irrelevant to the parent thread.

And the execution of the child thread's task should not delay the
parent thread....i.e. the parent thread should not wait until the
child thread completes its task.

Is this possible in Java...any pointers on hows to get this started?
Its quite possible, even easy.

One thing to consider though, is what happens if you get "slammed" by
traffic. Often times web containers will pool their main threads and
block incoming connections until a thread becomes available. If you are
spinning off these child threads without any consideration, you may
overload the JVM with threads. If it is a small tool used internally to
your company, don't worry too much about it. If it is a webapp that
serves a high-volume web-site, check out ThreadPoolExecutor and the likes.

Whatever you decide to do, I *strongly* recommend you read the book Java
Concurrency in Practice. It describes all the tools available to Java
programmers and most of the caveats of multi-threaded applications in
the Java platform.
<http://virtualinfinity.net/wordpress/technical-book-recommendations/java-concurrency-in-practice/>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top