About classes, instances, and shared data
Two or more Java plug-in classes can be configured in a plug-in set or group as described in the comments in the pluginsvr_config.xml file. When the Java plug-in server starts, it loads each configured plug-in class or group in a separate class loader and any static initialization in the classes is executed. It also initializes an instance of each plug-in class listed in the pluginsvr_config.xml file for each worker thread in its worker thread pool. Each time the AR System server makes a connection to the Java plug-in server, a selector thread adds the request associated with the connection to a task queue. As soon as a worker thread is free, it processes the next request in the task queue.
Different instances of a class can share data in the static class variables. To be thread safe, however, the class implementation must protect this static data.
The class can use instance variables to store data that is not shared. Because each thread has a separate instance, this data is thread safe.