It's possibile in java to have a class that don't have multiple instance between thread and classloader
for example, this is a simple singleton class that work with multiple thread
public class SynchronizedData {
private static SynchronizedData instance;
private volatile String data;
private SynchronizedData() {
}
public synchronized static SynchronizedData getInstance() {
if (instance == null) {
instance = new SynchronizedData();
}
return instance;
}
public synchronized String getData() {
return data;
}
public synchronized void setData(String data) {
this.data = data;
}
}
But don't work if is called by two different classloader.