Multi-threading considerations

Access to a QAManager is serialized. When you have multiple threads accessing a single QAManager, threads block while one thread performs a method call on the QAManager. To maximize concurrency, use a different QAManager for each thread. Only one thread is allowed to access an instance of QAManager at one time. Other threads block until the QAManager method that was invoked by the first thread returns.