jBPM executes in the client thread. How you create that thread is up to you. Here are some facts for you to consider:
JbpmConfiguration is threadsafe, mostly because it is read-only :-) If you find it is not, please report the problem here.
Conversely, JbpmContext is designed to be used as a thread-local object, so it is not threadsafe.
Once you create your threads, you can retrieve the JbpmConfiguration from any of them with a call to JbpmConfiguration.getInstance()
When you call openJbpmContext() on the JbpmConfiguration instance, the returned JbpmContext will be associated to the thread where the invocation ocurred.
You can access the JbpmContext associated with the current thread anytime by invoking JbpmContext.getCurrentJbpmContext()
This is exactly the information I was looking for.
Thank you very much for your help.